adds simplified chinese translation
This commit is contained in:
83
db/migrations/1712164799_updated_users.go
Normal file
83
db/migrations/1712164799_updated_users.go
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
package migrations
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/pocketbase/dbx"
|
||||||
|
"github.com/pocketbase/pocketbase/daos"
|
||||||
|
m "github.com/pocketbase/pocketbase/migrations"
|
||||||
|
"github.com/pocketbase/pocketbase/models/schema"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
m.Register(func(db dbx.Builder) error {
|
||||||
|
dao := daos.New(db);
|
||||||
|
|
||||||
|
collection, err := dao.FindCollectionByNameOrId("_pb_users_auth_")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// update
|
||||||
|
edit_language := &schema.SchemaField{}
|
||||||
|
json.Unmarshal([]byte(`{
|
||||||
|
"system": false,
|
||||||
|
"id": "t1wlsqyp",
|
||||||
|
"name": "language",
|
||||||
|
"type": "select",
|
||||||
|
"required": false,
|
||||||
|
"presentable": false,
|
||||||
|
"unique": false,
|
||||||
|
"options": {
|
||||||
|
"maxSelect": 1,
|
||||||
|
"values": [
|
||||||
|
"en",
|
||||||
|
"de",
|
||||||
|
"fr",
|
||||||
|
"hu",
|
||||||
|
"nl",
|
||||||
|
"pl",
|
||||||
|
"pt",
|
||||||
|
"zh"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}`), edit_language)
|
||||||
|
collection.Schema.AddField(edit_language)
|
||||||
|
|
||||||
|
return dao.SaveCollection(collection)
|
||||||
|
}, func(db dbx.Builder) error {
|
||||||
|
dao := daos.New(db);
|
||||||
|
|
||||||
|
collection, err := dao.FindCollectionByNameOrId("_pb_users_auth_")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// update
|
||||||
|
edit_language := &schema.SchemaField{}
|
||||||
|
json.Unmarshal([]byte(`{
|
||||||
|
"system": false,
|
||||||
|
"id": "t1wlsqyp",
|
||||||
|
"name": "language",
|
||||||
|
"type": "select",
|
||||||
|
"required": false,
|
||||||
|
"presentable": false,
|
||||||
|
"unique": false,
|
||||||
|
"options": {
|
||||||
|
"maxSelect": 1,
|
||||||
|
"values": [
|
||||||
|
"en",
|
||||||
|
"de",
|
||||||
|
"fr",
|
||||||
|
"hu",
|
||||||
|
"nl",
|
||||||
|
"pl",
|
||||||
|
"pt"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}`), edit_language)
|
||||||
|
collection.Schema.AddField(edit_language)
|
||||||
|
|
||||||
|
return dao.SaveCollection(collection)
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -12,6 +12,7 @@ register('hu', () => import('./locales/hu.json'))
|
|||||||
register('nl', () => import('./locales/nl.json'))
|
register('nl', () => import('./locales/nl.json'))
|
||||||
register('pl', () => import('./locales/pl.json'))
|
register('pl', () => import('./locales/pl.json'))
|
||||||
register('pt', () => import('./locales/pt.json'))
|
register('pt', () => import('./locales/pt.json'))
|
||||||
|
register('zh', () => import('./locales/zh.json'))
|
||||||
|
|
||||||
init({
|
init({
|
||||||
fallbackLocale: defaultLocale,
|
fallbackLocale: defaultLocale,
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
"category": "Kategorie",
|
"category": "Kategorie",
|
||||||
"change": "Ändern",
|
"change": "Ändern",
|
||||||
"changelog": "Changelog",
|
"changelog": "Changelog",
|
||||||
|
"chinese": "Chinesisch",
|
||||||
"completed": "Abgeschlossen",
|
"completed": "Abgeschlossen",
|
||||||
"completion-status": "Abschlussstatus",
|
"completion-status": "Abschlussstatus",
|
||||||
"contribute": "Mitwirken",
|
"contribute": "Mitwirken",
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
"category": "Category",
|
"category": "Category",
|
||||||
"change": "Change",
|
"change": "Change",
|
||||||
"changelog": "Changelog",
|
"changelog": "Changelog",
|
||||||
|
"chinese": "Chinese",
|
||||||
"completed": "Completed",
|
"completed": "Completed",
|
||||||
"completion-status": "Completion Status",
|
"completion-status": "Completion Status",
|
||||||
"contribute": "Contribute",
|
"contribute": "Contribute",
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
"category": "Catégorie",
|
"category": "Catégorie",
|
||||||
"change": "Changement",
|
"change": "Changement",
|
||||||
"changelog": "Journal des modifications",
|
"changelog": "Journal des modifications",
|
||||||
|
"chinese": "Chinois",
|
||||||
"completed": "Compléter",
|
"completed": "Compléter",
|
||||||
"completion-status": "L'état d'achèvement",
|
"completion-status": "L'état d'achèvement",
|
||||||
"contribute": "Contribuer",
|
"contribute": "Contribuer",
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
"category": "Kategória",
|
"category": "Kategória",
|
||||||
"change": "Változás",
|
"change": "Változás",
|
||||||
"changelog": "Változás napló",
|
"changelog": "Változás napló",
|
||||||
|
"chinese": "kínai",
|
||||||
"completed": "Teljesítve",
|
"completed": "Teljesítve",
|
||||||
"completion-status": "Befejezés állapota",
|
"completion-status": "Befejezés állapota",
|
||||||
"contribute": "Hozzájárulás",
|
"contribute": "Hozzájárulás",
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
"category": "Categorie",
|
"category": "Categorie",
|
||||||
"change": "Aanpassen",
|
"change": "Aanpassen",
|
||||||
"changelog": "Changelog",
|
"changelog": "Changelog",
|
||||||
|
"chinese": "Chinese",
|
||||||
"completed": "Voltooid",
|
"completed": "Voltooid",
|
||||||
"completion-status": "Voltooiingsstatus",
|
"completion-status": "Voltooiingsstatus",
|
||||||
"contribute": "Bijdragen",
|
"contribute": "Bijdragen",
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
"category": "Kategoria",
|
"category": "Kategoria",
|
||||||
"change": "Zmień",
|
"change": "Zmień",
|
||||||
"changelog": "Dziennik zmian",
|
"changelog": "Dziennik zmian",
|
||||||
|
"chinese": "chiński",
|
||||||
"completed": "Zakończono",
|
"completed": "Zakończono",
|
||||||
"completion-status": "Stan ukończenia",
|
"completion-status": "Stan ukończenia",
|
||||||
"contribute": "Kontrybuuj",
|
"contribute": "Kontrybuuj",
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
"category": "Categoria",
|
"category": "Categoria",
|
||||||
"change": "Alterar",
|
"change": "Alterar",
|
||||||
"changelog": "Registo de alterações",
|
"changelog": "Registo de alterações",
|
||||||
|
"chinese": "chinês",
|
||||||
"completed": "Completada",
|
"completed": "Completada",
|
||||||
"completion-status": "Status de conclusão",
|
"completion-status": "Status de conclusão",
|
||||||
"contribute": "Contribuir",
|
"contribute": "Contribuir",
|
||||||
|
|||||||
129
web/src/lib/i18n/locales/zh.json
Normal file
129
web/src/lib/i18n/locales/zh.json
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
{
|
||||||
|
"about": "关于",
|
||||||
|
"account-delete-confirm": "您现在要删除当前账户,所有的路线都会删除无法恢复,确认继续操作吗?",
|
||||||
|
"add-entry": "添加日程",
|
||||||
|
"add-to-list": "添加到列表",
|
||||||
|
"add-waypoint": "添加坐标",
|
||||||
|
"added-trail-to": "添加路线到",
|
||||||
|
"alphabetical": "字母",
|
||||||
|
"already-account": "已注册账户?",
|
||||||
|
"altitude": "海拔",
|
||||||
|
"api-documentation": "API 文档",
|
||||||
|
"avatar": "头像",
|
||||||
|
"basic-info": "基本信息",
|
||||||
|
"cancel": "取消",
|
||||||
|
"card": "{n, plural, =1 {卡片} other {卡片}}",
|
||||||
|
"categories": "分类",
|
||||||
|
"category": "分类",
|
||||||
|
"change": "更换",
|
||||||
|
"changelog": "变更日志",
|
||||||
|
"chinese": "华人",
|
||||||
|
"completed": "已完成",
|
||||||
|
"completion-status": "完成状态",
|
||||||
|
"contribute": "贡献",
|
||||||
|
"create-new-list": "创建新列表",
|
||||||
|
"creation-date": "创建日期",
|
||||||
|
"danger-zone": "危险区域",
|
||||||
|
"date": "日期",
|
||||||
|
"default-location": "默认地点",
|
||||||
|
"delete": "删除",
|
||||||
|
"delete-account": "注销账户",
|
||||||
|
"delete-list-confirm": "您确认要删除当前列表?列表中所有行程仍然继续保留不会被删除。",
|
||||||
|
"delete-trail-confirm": "您确认想要删除当前行程?此操作不可撤回。",
|
||||||
|
"describe-your-trail": "行程描述",
|
||||||
|
"description": "描述",
|
||||||
|
"difficult": "困难",
|
||||||
|
"difficulty": "难度",
|
||||||
|
"directions": "导航",
|
||||||
|
"display-as": "显示方式",
|
||||||
|
"distance": "距离",
|
||||||
|
"documentation": "文档",
|
||||||
|
"download-gpx": "下载 GPX",
|
||||||
|
"dutch": "荷兰语",
|
||||||
|
"easy": "简单",
|
||||||
|
"edit": "编辑",
|
||||||
|
"edit-entry": "编辑日程",
|
||||||
|
"edit-list": "编辑列表",
|
||||||
|
"edit-waypoint": "编辑坐标",
|
||||||
|
"elevation-gain": "上升海拔",
|
||||||
|
"email": "电子邮箱",
|
||||||
|
"english": "英语",
|
||||||
|
"entry": "日程",
|
||||||
|
"error-creating-user": "创建用户错误",
|
||||||
|
"error-during-login": "登录错误",
|
||||||
|
"error-reading-file": "读取文件错误",
|
||||||
|
"est-duration": "预计时长",
|
||||||
|
"explore": "探索",
|
||||||
|
"explore-some-trails": "探索行程",
|
||||||
|
"features": "特性",
|
||||||
|
"french": "法语",
|
||||||
|
"german": "德语",
|
||||||
|
"hero_section_0_text": "探索激动人心的探险,收藏最爱行程,,体验美丽地大自然。找到你的下一次冒险!",
|
||||||
|
"hero_section_1_heading": "这儿似乎还没有行程。",
|
||||||
|
"hero_section_1_text": "以下有你可能喜欢的线路,或者立刻浏览全部列表。",
|
||||||
|
"hero_section_1_text_alternative": "即刻开始规划您最新的冒险。",
|
||||||
|
"hero_section_2_text": "你知道吗?这里不仅仅可以收藏你的登山路线,还能为您的所有冒险放到相应的类别里面。",
|
||||||
|
"hungarian": "匈牙利语",
|
||||||
|
"icon": "图标",
|
||||||
|
"imperial": "英制",
|
||||||
|
"invalid-date": "无效日期",
|
||||||
|
"invalid-username": "无效用户名",
|
||||||
|
"language": "语言",
|
||||||
|
"latitude": "维度",
|
||||||
|
"license": "开源协议",
|
||||||
|
"list": "{n, plural, =1 {列表} other {列表}}",
|
||||||
|
"location": "地点",
|
||||||
|
"login": "登录",
|
||||||
|
"logout": "登出",
|
||||||
|
"longitude": "经度",
|
||||||
|
"make-one": "立刻注册!",
|
||||||
|
"make-thumbnail": "生成缩略图",
|
||||||
|
"map": "地图",
|
||||||
|
"metric": "公制",
|
||||||
|
"moderate": "中等",
|
||||||
|
"must-be-at-least-n-characters-long": "长度至少 {n} 字符",
|
||||||
|
"name": "名称",
|
||||||
|
"near": "附近",
|
||||||
|
"new-list": "新列表",
|
||||||
|
"new-trail": "创建新路线",
|
||||||
|
"no-account": "还未注册?",
|
||||||
|
"no-preference": "尚未规划",
|
||||||
|
"no-results": "没有找到结果",
|
||||||
|
"not-a-valid-email-address": "无效电子邮箱地址",
|
||||||
|
"not-completed": "未完成",
|
||||||
|
"or": "或",
|
||||||
|
"password": "密码",
|
||||||
|
"photos": "图片",
|
||||||
|
"pick-a-trail": "选择一个路线",
|
||||||
|
"polish": "波兰语",
|
||||||
|
"portuguese": "葡萄牙语",
|
||||||
|
"profile": "个人资料",
|
||||||
|
"public": "公开",
|
||||||
|
"radius": "半径",
|
||||||
|
"register": "注册",
|
||||||
|
"removed-trail-from": "路线已删除自",
|
||||||
|
"required": "必填",
|
||||||
|
"save": "保存",
|
||||||
|
"save-trail": "保存路线",
|
||||||
|
"save-your-trail-first": "先保存你的路线",
|
||||||
|
"search-cities": "搜索城市",
|
||||||
|
"search-for-trails-places": "搜索路线、地点",
|
||||||
|
"search-trails": "搜索路线",
|
||||||
|
"select-list": "选择列表",
|
||||||
|
"settings": "设置",
|
||||||
|
"show-in-overview": "详情中展示",
|
||||||
|
"show-on-map": "地图中展示",
|
||||||
|
"slogan": "保存你的冒险!",
|
||||||
|
"sort": "排序",
|
||||||
|
"summit-book": "详细日程",
|
||||||
|
"text": "文本",
|
||||||
|
"trail": "{n, plural, =1 {路线} other {路线}}",
|
||||||
|
"trails-for-you": "推荐路线",
|
||||||
|
"units": "单位",
|
||||||
|
"upload-file": "上传文件",
|
||||||
|
"upload-gpx": "上传 GPX",
|
||||||
|
"username": "用户名",
|
||||||
|
"waypoints": "坐标",
|
||||||
|
"welcome_to": "欢迎",
|
||||||
|
"wrong-username-or-password": "用户名或密码无效"
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@ export type User = {
|
|||||||
password: string,
|
password: string,
|
||||||
avatar?: string;
|
avatar?: string;
|
||||||
unit?: "metric" | "imperial";
|
unit?: "metric" | "imperial";
|
||||||
language?: "en" | "de" | "fr" | "hu" | "nl" | "pl" | "pt";
|
language?: "en" | "de" | "fr" | "hu" | "nl" | "pl" | "pt" | "zh" ;
|
||||||
location?: { name: string, lat: number, lon: number }
|
location?: { name: string, lat: number, lon: number }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
import { _, locale } from "svelte-i18n";
|
import { _, locale } from "svelte-i18n";
|
||||||
|
|
||||||
const languages: SelectItem[] = [
|
const languages: SelectItem[] = [
|
||||||
|
{ text: $_("chinese"), value: "zh" },
|
||||||
{ text: $_("german"), value: "de" },
|
{ text: $_("german"), value: "de" },
|
||||||
{ text: $_("english"), value: "en" },
|
{ text: $_("english"), value: "en" },
|
||||||
{ text: $_("french"), value: "fr" },
|
{ text: $_("french"), value: "fr" },
|
||||||
|
|||||||
Reference in New Issue
Block a user