diff --git a/src/i18n/de/common.json b/src/i18n/de/common.json new file mode 100644 index 00000000..a7bc667b --- /dev/null +++ b/src/i18n/de/common.json @@ -0,0 +1,21 @@ +{ + "buttons": { + "apply": "Übernehmen", + "cancel": "Abbrechen" + }, + "customEmoji": { + "accessibilityLabel": "Eigenes Emoji {{emoji}}" + }, + "message": { + "success": { + "message": "{{function}} erfolgreich" + }, + "warning": { + "message": "" + }, + "error": { + "message": "{{function}} fehlgeschlagen, bitte wiederholen" + } + }, + "separator": ", " +} \ No newline at end of file diff --git a/src/i18n/de/components/instance.json b/src/i18n/de/components/instance.json new file mode 100644 index 00000000..9794585d --- /dev/null +++ b/src/i18n/de/components/instance.json @@ -0,0 +1,28 @@ +{ + "server": { + "textInput": { + "placeholder": "Instanz" + }, + "button": "Login", + "information": { + "name": "Name", + "accounts": "Konten", + "statuses": "Tröts", + "domains": "Domains" + }, + "disclaimer": { + "base": "Der Login erfolgt über den Browser, so dass Ihre Kontoinformationen für die Toot-App nicht sichtbar sind. Weitere Informationen", + "privacy": "Datenschutzbestimmungen" + } + }, + "update": { + "alert": { + "title": "Bei der Instanz angemeldet", + "message": "Du kannst dich mit einem weiteren Konto anmelden, während du weiterhin mit deinem bestehen Account eingeloggt bleibst", + "buttons": { + "cancel": "$t(common:buttons.cancel)", + "continue": "Weiter" + } + } + } +} \ No newline at end of file diff --git a/src/i18n/de/components/parse.json b/src/i18n/de/components/parse.json new file mode 100644 index 00000000..571eac68 --- /dev/null +++ b/src/i18n/de/components/parse.json @@ -0,0 +1,9 @@ +{ + "HTML": { + "expanded": { + "true": "Zusammenklappen {{hint}}", + "false": "Ausklappen {{hint}}" + }, + "defaultHint": "Artikel" + } +} \ No newline at end of file diff --git a/src/i18n/de/components/timeline.json b/src/i18n/de/components/timeline.json new file mode 100644 index 00000000..a0926f41 --- /dev/null +++ b/src/i18n/de/components/timeline.json @@ -0,0 +1,234 @@ +{ + "empty": { + "error": { + "message": "Fehler beim Laden", + "button": "Wiederholen" + }, + "success": { + "message": "Timeline ist leer" + } + }, + "end": { + "message": "Ende der Geschichte. Wie wäre es mit einer Tasse <0 />?" + }, + "lookback": { + "message": "Letzte Lesung am" + }, + "refresh": { + "fetchPreviousPage": "Neuere Einträge", + "refetch": "Zum letzten" + }, + "shared": { + "actioned": { + "pinned": "Angepinnt", + "favourite": "{{name}} mag deinen Tröt", + "status": "{{name}} hat gerade getrötet", + "follow": "{{name}} folgt dir", + "follow_request": "{{name}} möchte dir gerne folgen", + "poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet", + "reblog": { + "default": "{{name}} hat geboostet", + "notification": "{{name}} hat deinen Tröt geboostet" + } + }, + "actions": { + "reply": { + "accessibilityLabel": "Antworten" + }, + "reblogged": { + "accessibilityLabel": "Tröt boosten", + "function": "Boost" + }, + "favourited": { + "accessibilityLabel": "Favorit", + "function": "Sternen" + }, + "bookmarked": { + "accessibilityLabel": "Lesezeichen hinzufügen", + "function": "Lesezeichen setzen" + } + }, + "actionsUsers": { + "reblogged_by": { + "accessibilityLabel": "{{count}} Leute haben den Tröt geboostet", + "accessibilityHint": "Booster anzeigen", + "text": "$t(screenTabs:shared.users.statuses.reblogged_by)" + }, + "favourited_by": { + "accessibilityLabel": "{{count}} Leute mögen diesen Tröt", + "accessibilityHint": "Anzeigen, wer diesen Tröt mag", + "text": "$t(screenTabs:shared.users.statuses.favourited_by)" + }, + "history": { + "accessibilityLabel": "Dieser Tröt wurde {{count}} mal bearbeitet", + "accessibilityHint": "Für den vollständigen Verlauf auswählen", + "text": "{{count}} bearbeitet", + "text_plural": "{{count}} mal bearbeitet" + } + }, + "attachment": { + "sensitive": { + "button": "Sensiblen Inhalt anzeigen" + }, + "unsupported": { + "text": "Ladefehler", + "button": "Remote Link versuchen" + } + }, + "avatar": { + "accessibilityLabel": "Profilbild von {{name}}", + "accessibilityHint": "Zum Profil von {{name}}" + }, + "content": { + "expandHint": "Ausgeblendeter Inhalt" + }, + "filtered": "Ausgeblendet", + "fullConversation": "Unterhaltung anzeigen", + "translate": { + "default": "Übersetzen", + "succeed": "Übersetzt durch {{provider}} von {{source}}", + "failed": "Übersetzung fehlgeschlagen", + "source_not_supported": "Sprache des Tröts wird nicht unterstützt", + "target_not_supported": "Zielsprache wird nicht unterstützt" + }, + "header": { + "shared": { + "account": { + "name": { + "accessibilityHint": "Benutzername anzeigen" + }, + "account": { + "accessibilityHint": "Profil" + } + }, + "application": "Getrötet mit {{application}}", + "edited": { + "accessibilityLabel": "Tröt bearbeitet" + }, + "muted": { + "accessibilityLabel": "Tröt stummgeschaltet" + }, + "visibility": { + "direct": { + "accessibilityLabel": "Tröt ist eine Direktnachricht" + }, + "private": { + "accessibilityLabel": "Tröt ist nur für Follower sichtbar" + } + } + }, + "conversation": { + "withAccounts": "mit", + "delete": { + "function": "Nachricht löschen" + } + }, + "actions": { + "accessibilityHint": "Funktionen für diesen Tröt - wie z. B. Autor und Originaltröt", + "account": { + "heading": "Über die Nutzerin/den Nutzer", + "mute": { + "function": "Profil stummschalten", + "button": "@{{acct}} stummschalten" + }, + "block": { + "function": "Nutzer blockieren", + "button": "@{{acct}} blockieren" + }, + "reports": { + "function": "User melden", + "button": "@{{acct}} melden" + } + }, + "domain": { + "heading": "Über diese Instanz", + "block": { + "function": "Instanz blockieren", + "button": "Instanz {{domain}} blockieren" + }, + "alert": { + "title": "{{domain}} wirklich blockieren?", + "message": "Üblicherweise kannst du einen User stummschalten oder blockieren.\nBlockierst du hingegegen eine Instanz, wird deren gesamter Inhalt samt Usern, die dir von dieser Instanz folgen, entfernt!", + "buttons": { + "confirm": "Blockierung bestätigen", + "cancel": "$t(common:buttons.cancel)" + } + } + }, + "share": { + "status": { + "heading": "Tröt teilen", + "button": "Link zu diesem Tröt teilen" + }, + "account": { + "heading": "User verlinken", + "button": "Link zu diesem Benutzer teilen" + } + }, + "status": { + "heading": "Über Toot", + "edit": { + "function": "Tröt bearbeiten", + "button": "Diesen Tröt bearbeiten" + }, + "delete": { + "function": "Tröt löschen", + "button": "Diesen Tröt löschen", + "alert": { + "title": "Tröt sicher löschen?", + "message": "Bist du wirklich sicher, diesen Tröt löschen zu wollen? Sämtliche Boosts und Sterne werden samt der Antworten entfernt.", + "buttons": { + "confirm": "Löschen bestätigen", + "cancel": "$t(common:buttons.cancel)" + } + } + }, + "deleteEdit": { + "function": "Tröt löschen", + "button": "Diesen Tröt neu entwerfen", + "alert": { + "title": "Tröt sicher löschen?", + "message": "Bist du wirklich sicher, diesen Tröt neu zu entwerfen? Alle Boosts und Sterne werden entfernt - samt der Antworten.", + "buttons": { + "confirm": "Löschen bestätigen", + "cancel": "$t(common:buttons.cancel)" + } + } + }, + "mute": { + "function": "Tröt stummschalten", + "button": { + "positive": "Diesen Tröt sowie die Antworten stummschalten", + "negative": "Diesen Tröt sowie die Antworten nicht mehr stummschalten" + } + }, + "pin": { + "function": "Anheften", + "button": { + "positive": "Diesen Tröt anheften", + "negative": "Diesen Tröt nicht mehr anheften" + } + } + } + } + }, + "poll": { + "meta": { + "button": { + "vote": "Abstimmen", + "refresh": "Aktualisieren" + }, + "count": { + "voters": "{{count}} Benutzer haben abgestimmt", + "voters_plural": "{{count}} Benutzer haben abgestimmt", + "votes": "{{count}} Stimmen", + "votes_plural": "{{count}} Stimmen" + }, + "expiration": { + "expired": "Abstimmung abgelaufen", + "until": "Läuft in <0 /> ab" + } + } + } + } +} \ No newline at end of file diff --git a/src/i18n/de/screens.json b/src/i18n/de/screens.json new file mode 100644 index 00000000..ee03cc6b --- /dev/null +++ b/src/i18n/de/screens.json @@ -0,0 +1,14 @@ +{ + "screenshot": { + "title": "Datenschutz", + "message": "Bitte geben Sie nicht die Identität anderer Nutzer preis, wie z. B. Benutzername, Avatar, etc. Vielen Dank!", + "button": "Bestätigen" + }, + "localCorrupt": { + "message": "Login abgelaufen, bitte erneut anmelden" + }, + "pushError": { + "message": "Fehler des Benachrichtigungsdienstes", + "description": "Bitte Benachrichtigungsdienst in den Einstellungen erneut aktivieren" + } +} \ No newline at end of file diff --git a/src/i18n/de/screens/actions.json b/src/i18n/de/screens/actions.json new file mode 100644 index 00000000..61dca26a --- /dev/null +++ b/src/i18n/de/screens/actions.json @@ -0,0 +1,19 @@ +{ + "content": { + "button": { + "apply": "$t(common:buttons.apply)", + "cancel": "$t(common:buttons.cancel)" + }, + "notificationsFilter": { + "heading": "Benachrichtigungsart anzeigen", + "content": { + "follow": "$t(screenTabs:me.push.follow.heading)", + "favourite": "$t(screenTabs:me.push.favourite.heading)", + "reblog": "$t(screenTabs:me.push.reblog.heading)", + "mention": "$t(screenTabs:me.push.mention.heading)", + "poll": "$t(screenTabs:me.push.poll.heading)", + "follow_request": "Followeranfrage" + } + } + } +} \ No newline at end of file diff --git a/src/i18n/vi/components/instance.json b/src/i18n/vi/components/instance.json index 52931919..ee773025 100644 --- a/src/i18n/vi/components/instance.json +++ b/src/i18n/vi/components/instance.json @@ -5,7 +5,7 @@ }, "button": "Đăng nhập", "information": { - "name": "Tên", + "name": "Tên máy chủ", "accounts": "Người dùng", "statuses": "Tút", "domains": "Liên hợp" diff --git a/src/i18n/vi/components/timeline.json b/src/i18n/vi/components/timeline.json index d3e84f49..2b2586b2 100644 --- a/src/i18n/vi/components/timeline.json +++ b/src/i18n/vi/components/timeline.json @@ -71,7 +71,7 @@ }, "avatar": { "accessibilityLabel": "Ảnh đại diện của {{name}}", - "accessibilityHint": "Đến trang cá nhân {{name}}" + "accessibilityHint": "Đến trang của {{name}}" }, "content": { "expandHint": "nội dung ẩn" diff --git a/src/i18n/vi/screens/tabs.json b/src/i18n/vi/screens/tabs.json index 561d1b2e..de4365ae 100644 --- a/src/i18n/vi/screens/tabs.json +++ b/src/i18n/vi/screens/tabs.json @@ -38,10 +38,10 @@ "name": "Nhắn riêng" }, "favourites": { - "name": "Lượt thích" + "name": "Đã thích" }, "fontSize": { - "name": "Kích cỡ phông chữ" + "name": "Cỡ chữ" }, "lists": { "name": "Danh sách" @@ -53,7 +53,7 @@ "name": "Thông báo đẩy" }, "profile": { - "name": "Cài đặt cá nhân" + "name": "Sửa hồ sơ" }, "profileName": { "name": "Tên hiển thị mới" @@ -75,8 +75,8 @@ } }, "fontSize": { - "showcase": "Kết quả", - "demo": "

Đây là một tút mẫu 😊 Bạn có thể chọn một trong nhiều lựa chọn bên dưới.

Tùy chọn này chỉ áp dụng cho nội dung tút chứ không thay đổi những phần khác của app.

", + "showcase": "Xem trước", + "demo": "

Đây là một tút mẫu 😊 Bạn có thể chọn một trong nhiều lựa chọn bên dưới.

Tùy chọn này chỉ áp dụng cho nội dung tút chứ không ảnh hưởng những phần tử khác của app.

", "availableSizes": "Kích cỡ", "sizes": { "S": "S", @@ -270,7 +270,7 @@ "version": "Phiên bản {{version}}" }, "switch": { - "existing": "Đã đăng nhập trước đó", + "existing": "Đã đăng nhập trước đây", "new": "Đăng nhập máy chủ" } }, @@ -320,7 +320,7 @@ "notFound": "Không tìm thấy {{type}} {{searchTerm}}" }, "toot": { - "name": "Thảo luận" + "name": "Nội dung tút" }, "users": { "accounts": { diff --git a/src/i18n/zh-Hant/common.json b/src/i18n/zh-Hant/common.json new file mode 100644 index 00000000..0ccecbde --- /dev/null +++ b/src/i18n/zh-Hant/common.json @@ -0,0 +1,21 @@ +{ + "buttons": { + "apply": "套用", + "cancel": "取消" + }, + "customEmoji": { + "accessibilityLabel": "自定的表情符號 {{emoji}}" + }, + "message": { + "success": { + "message": "{{function}} 成功完成" + }, + "warning": { + "message": "" + }, + "error": { + "message": "{{function}} 失敗,請再試一次" + } + }, + "separator": "," +} \ No newline at end of file diff --git a/src/i18n/zh-Hant/components/emojis.json b/src/i18n/zh-Hant/components/emojis.json new file mode 100644 index 00000000..9e3f1cd9 --- /dev/null +++ b/src/i18n/zh-Hant/components/emojis.json @@ -0,0 +1,3 @@ +{ + "frequentUsed": "常用" +} \ No newline at end of file diff --git a/src/i18n/zh-Hant/components/instance.json b/src/i18n/zh-Hant/components/instance.json new file mode 100644 index 00000000..71c2445e --- /dev/null +++ b/src/i18n/zh-Hant/components/instance.json @@ -0,0 +1,28 @@ +{ + "server": { + "textInput": { + "placeholder": "站點的網域" + }, + "button": "登入", + "information": { + "name": "名稱", + "accounts": "使用者", + "statuses": "嘟文", + "domains": "串聯宇宙" + }, + "disclaimer": { + "base": "將使用系統內建的瀏覽器來登入,tooot app 無法讀取您的帳號資訊;詳見 ", + "privacy": "隱私權政策" + } + }, + "update": { + "alert": { + "title": "已登入站點", + "message": "您可以多登入其他的帳號,已登入的帳號會被保留", + "buttons": { + "cancel": "$t(common:buttons.cancel)", + "continue": "繼續" + } + } + } +} \ No newline at end of file diff --git a/src/i18n/zh-Hant/components/mediaSelector.json b/src/i18n/zh-Hant/components/mediaSelector.json new file mode 100644 index 00000000..a2738c7b --- /dev/null +++ b/src/i18n/zh-Hant/components/mediaSelector.json @@ -0,0 +1,28 @@ +{ + "title": "選擇媒體來源", + "options": { + "library": "上傳", + "photo": "拍照", + "cancel": "$t(common:buttons.cancel)" + }, + "library": { + "alert": { + "title": "權限不足", + "message": "上傳照片需要讀取的權限", + "buttons": { + "settings": "更新設定", + "cancel": "$t(common:buttons.cancel)" + } + } + }, + "photo": { + "alert": { + "title": "權限不足", + "message": "需要使用相機的權限來上傳", + "buttons": { + "settings": "更新設定", + "cancel": "$t(common:buttons.cancel)" + } + } + } +} \ No newline at end of file diff --git a/src/i18n/zh-Hant/components/parse.json b/src/i18n/zh-Hant/components/parse.json new file mode 100644 index 00000000..df93b2df --- /dev/null +++ b/src/i18n/zh-Hant/components/parse.json @@ -0,0 +1,9 @@ +{ + "HTML": { + "expanded": { + "true": "收起{{hint}}", + "false": "展開{{hint}}" + }, + "defaultHint": "全文" + } +} \ No newline at end of file diff --git a/src/i18n/zh-Hant/components/relationship.json b/src/i18n/zh-Hant/components/relationship.json new file mode 100644 index 00000000..613097c8 --- /dev/null +++ b/src/i18n/zh-Hant/components/relationship.json @@ -0,0 +1,16 @@ +{ + "follow": { + "function": "追蹤使用者" + }, + "block": { + "function": "封鎖使用者" + }, + "button": { + "error": "載入錯誤", + "blocked_by": "已被使用者封鎖", + "blocking": "解除封鎖", + "following": "取消追蹤", + "requested": "收回要求", + "default": "追蹤" + } +} \ No newline at end of file diff --git a/src/i18n/zh-Hant/components/relativeTime.json b/src/i18n/zh-Hant/components/relativeTime.json new file mode 100644 index 00000000..2f50ef1e --- /dev/null +++ b/src/i18n/zh-Hant/components/relativeTime.json @@ -0,0 +1,20 @@ +{ + "strings": { + "prefixAgo": "", + "prefixFromNow": "", + "suffixAgo": "前", + "suffixFromNow": "", + "seconds": "%d 秒", + "minute": "約 1 分", + "minutes": "%d 分", + "hour": "約 1 小時", + "hours": "約 %d 小時", + "day": "1 天", + "days": "%d 天", + "month": "約 1 個月", + "months": "%d 個月", + "year": "約 1 年", + "years": "%d 年", + "wordSeparator": "" + } +} \ No newline at end of file diff --git a/src/i18n/zh-Hant/screens.json b/src/i18n/zh-Hant/screens.json new file mode 100644 index 00000000..7681c218 --- /dev/null +++ b/src/i18n/zh-Hant/screens.json @@ -0,0 +1,14 @@ +{ + "screenshot": { + "title": "保護隱私", + "message": "請不要散佈使用者的身份,像是使用者名稱、大頭照等,謝謝你!", + "button": "確認" + }, + "localCorrupt": { + "message": "登入狀態已過期,請再登入一次" + }, + "pushError": { + "message": "推播服務錯誤", + "description": "請在設定裡重新啟用推播" + } +} \ No newline at end of file