From adba6b056f9f3bff6b55ff9863bb75ea847742e0 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sat, 29 Feb 2020 15:18:56 -0500 Subject: [PATCH] Translation additions. - Adding Japanese. Fixes #566 - Adding some German translations. Fixes #567 - Fixing pt-br --- ui/src/i18next.ts | 6 +- ui/src/utils.ts | 4 + ui/translations/de.json | 35 +++- ui/translations/ja.json | 197 +++++++++++++++++++++ ui/translations/{pt_br.json => pt_BR.json} | 0 5 files changed, 239 insertions(+), 3 deletions(-) create mode 100644 ui/translations/ja.json rename ui/translations/{pt_br.json => pt_BR.json} (100%) diff --git a/ui/src/i18next.ts b/ui/src/i18next.ts index 0ee5b1a37..85d06f91f 100644 --- a/ui/src/i18next.ts +++ b/ui/src/i18next.ts @@ -13,7 +13,8 @@ import { it } from './translations/it'; import { fi } from './translations/fi'; import { ca } from './translations/ca'; import { fa } from './translations/fa'; -import { pt_br } from './translations/pt_br'; +import { pt_BR } from './translations/pt_BR'; +import { ja } from './translations/ja'; // https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66 const resources = { @@ -30,7 +31,8 @@ const resources = { fi, ca, fa, - pt_br, + pt_BR, + ja, }; function format(value: any, format: any, lng: any): any { diff --git a/ui/src/utils.ts b/ui/src/utils.ts index 9d2798efe..661057206 100644 --- a/ui/src/utils.ts +++ b/ui/src/utils.ts @@ -11,6 +11,7 @@ import 'moment/locale/fi'; import 'moment/locale/ca'; import 'moment/locale/fa'; import 'moment/locale/pt-br'; +import 'moment/locale/ja'; import { UserOperation, @@ -278,6 +279,7 @@ export const languages = [ { code: 'es', name: 'Español' }, { code: 'de', name: 'Deutsch' }, { code: 'fa', name: 'فارسی' }, + { code: 'ja', name: '日本語' }, { code: 'pt_BR', name: 'Português Brasileiro' }, { code: 'zh', name: '中文' }, { code: 'fi', name: 'Suomi' }, @@ -331,6 +333,8 @@ export function getMomentLanguage(): string { lang = 'fa'; } else if (lang.startsWith('pt')) { lang = 'pt-br'; + } else if (lang.startsWith('ja')) { + lang = 'ja'; } else { lang = 'en'; } diff --git a/ui/translations/de.json b/ui/translations/de.json index 49b4b3df6..15c437012 100644 --- a/ui/translations/de.json +++ b/ui/translations/de.json @@ -204,5 +204,38 @@ "user_already_exists": "Nutzer existiert bereits.", "couldnt_update_user": "Konnte Nutzer nicht aktualisieren", "system_err_login": - "Systemfehler. Versuche dich aus- und wieder einzuloggen." + "Systemfehler. Versuche dich aus- und wieder einzuloggen.", + "cross_posted_to": "Crossposted auf: ", + "create_private_message": "Privatnachricht erstellen", + "send_secure_message": "Sichere Nachricht absenden", + "send_message": "Nachricht absenden", + "message": "Nachricht", + "avatar": "Avatar", + "upload_avatar": "Avatar hochladen", + "show_avatars": "Avatare anzeigen", + "old": "Alt", + "docs": "Dokumentation", + "message_sent": "Nachricht versandt", + "messages": "Nachrichten", + "old_password": "Letztes Passwort", + "matrix_user_id": "Matrix Benutzer", + "private_message_disclaimer": "Achtung: Private Nachrichten sind in Lemmy nicht sicher. Bitte erstelle einen <1>Riot.im Account für sicheren Nachrichtenverkehr.", + "send_notifications_to_email": "Sende Benachrichtigungen per Email", + "downvotes_disabled": "Downvotes deaktiviert", + "enable_downvotes": "Aktiviere Downvotes", + "open_registration": "Registrierung öffnen", + "registration_closed": "Registrierung geschlossen", + "enable_nsfw": "NSFW Erlauben", + "donate_to_lemmy": "Lemmy spenden", + "donate": "Spenden", + "from": "von", + "logged_in": "Eingeloggt", + "couldnt_get_comments": "Konnte Kommentare nicht laden.", + "post_title_too_long": "Posttitel zu lang.", + "email_already_exists": "Email existiert bereits.", + "couldnt_create_private_message": "Konnte Privatnachricht nicht erstelllen.", + "no_private_message_edit_allowed": "Editieren der Privatnachricht nicht erlaubt.", + "couldnt_update_private_message": "Konnte Privatnachricht nicht aktualisieren.", + "time": "Zeit", + "action": "Aktion" } diff --git a/ui/translations/ja.json b/ui/translations/ja.json new file mode 100644 index 000000000..517db5639 --- /dev/null +++ b/ui/translations/ja.json @@ -0,0 +1,197 @@ +{ + "post": "投稿", + "remove_post": "投稿を削除", + "no_posts": "投稿はありません。", + "create_a_post": "投稿を作成", + "create_post": "投稿を作成", + "number_of_posts": "{{count}} 件の投稿", + "posts": "投稿", + "related_posts": "こちらの投稿が関連しているかもしれません", + "cross_posts": "このリンクはこちらにも投稿されています:", + "cross_post": "クロスポスト", + "cross_posted_to": "こちらにも投稿済み: ", + "comments": "コメント", + "number_of_comments": "{{count}} 件のコメント", + "remove_comment": "コミュニティを削除", + "communities": "コミュニティ", + "users": "ユーザー", + "create_a_community": "コミュニティを作成", + "create_community": "コミュニティを作成", + "remove_community": "コミュニティを削除", + "subscribed_to_communities": "登録済みの<1>コミュニティ", + "trending_communities": "話題の<1>コミュニティ", + "list_of_communities": "コミュニティ一覧", + "number_of_communities": "{{count}} 個のコミュニティ", + "community_reqs": "英小文字、アンダースコア、空白なし。", + "create_private_message": "プライベートメッセージの作成", + "send_secure_message": "メッセージを安全に送信", + "send_message": "メッセージを送信", + "message": "メッセージ", + "edit": "編集", + "reply": "返信", + "cancel": "キャンセル", + "preview": "プレビュー", + "upload_image": "画像をアップロード", + "avatar": "アバター", + "upload_avatar": "アバターをアップロード", + "show_avatars": "アバターを表示", + "formatting_help": "書式のヘルプ", + "view_source": "ソースを表示", + "unlock": "凍結解除", + "lock": "凍結", + "sticky": "固定", + "unsticky": "固定解除", + "link": "リンク", + "archive_link": "リンクをアーカイブ", + "mod": "モデレーター", + "mods": "モデレーター", + "moderates": "モデレーター", + "settings": "設定", + "remove_as_mod": "モデレーターから除外", + "appoint_as_mod": "モデレーターに任命", + "modlog": "モデレーションログ", + "admin": "管理者", + "admins": "管理者", + "remove_as_admin": "管理者から除外", + "appoint_as_admin": "管理者に任命", + "remove": "強制削除", + "removed": "強制削除済み", + "locked": "凍結中", + "stickied": "固定中", + "reason": "理由", + "mark_as_read": "既読にする", + "mark_as_unread": "未読にする", + "delete": "削除", + "deleted": "削除済み", + "delete_account": "アカウントを削除", + "delete_account_confirm": "警告: あなたのデータを全て恒久的に削除します。確認のためパスワードを入力してください。", + "restore": "復元", + "ban": "アクセス禁止", + "ban_from_site": "サイトへアクセス禁止", + "unban": "アクセス禁止解除", + "unban_from_site": "サイトへのアクセス禁止解除", + "banned": "アクセス禁止中", + "save": "保存", + "unsave": "保存解除", + "create": "作成", + "creator": "投稿者", + "username": "ユーザー名", + "email_or_username": "メールアドレスまたはユーザー名", + "number_of_users": "{{count}} 名のユーザー", + "number_of_subscribers": "{{count}} 名の登録者", + "number_of_points": "{{count}} ポイント", + "number_online": "{{count}} 名のユーザーがオンライン", + "name": "名前", + "title": "タイトル", + "category": "カテゴリー", + "subscribers": "登録者", + "saved": "保存済み", + "unsubscribe": "登録解除", + "subscribe": "登録", + "subscribed": "登録済み", + "prev": "前", + "next": "次", + "sidebar": "説明", + "sort_type": "並び順の種類", + "hot": "人気", + "new": "新しい順", + "old": "古い順", + "top_day": "日間トップ", + "week": "週間", + "month": "月間", + "year": "年間", + "all": "全て", + "top": "トップ", + "api": "API", + "docs": "ドキュメント", + "inbox": "受信箱", + "inbox_for": "<1>{{user}} の受信箱", + "mark_all_as_read": "全てを既読にする", + "type": "種類", + "unread": "未読", + "replies": "返信", + "mentions": "言及", + "reply_sent": "返信を送信しました", + "message_sent": "メッセージを送信しました", + "search": "検索", + "overview": "全種類", + "view": "表示", + "logout": "ログアウト", + "login_sign_up": "ログイン / 登録", + "login": "ログイン", + "sign_up": "登録", + "notifications_error": "お遣いのブラウザーではデスクトップ通知が利用不可能です。Firefox か Chrome をお試しください。", + "unread_messages": "未読のメッセージ", + "messages": "メッセージ", + "password": "パスワード", + "verify_password": "パスワードの確認", + "old_password": "現在のパスワード", + "forgot_password": "パスワードを忘れた", + "reset_password_mail_sent": "パスワードリセット用のメールを送信しました。", + "password_change": "パスワードの変更", + "new_password": "新しいパスワード", + "no_email_setup": "サーバーのメール設定が正しくありません。", + "email": "メールアドレス", + "matrix_user_id": "Matrix のユーザーアカウント", + "private_message_disclaimer": "Lemmy でのプライベートメッセージは安全ではありません。安全なメッセージを送るには <1>Riot.im でアカウントを作成してください。", + "send_notifications_to_email": "通知をメール送信", + "optional": "任意", + "language": "言語", + "browser_default": "ブラウザーのデフォルト", + "enable_downvotes": "反対票を有効化", + "open_registration": "ユーザー登録を受け付ける", + "registration_closed": "登録は受け付けていません", + "enable_nsfw": "閲覧注意を有効化", + "url": "URL", + "body": "本文", + "copy_suggested_title": "タイトルの提案をコピーする: {{title}}", + "community": "コミュニティ", + "expand_here": "拡大表示", + "subscribe_to_communities": "<1>コミュニティをいくつか登録してみましょう。", + "recent_comments": "最新コメント", + "no_results": "検索結果なし。", + "setup": "設定", + "lemmy_instance_setup": "Lemmy インスタンス設定", + "setup_admin": "サイト管理者を設定", + "your_site": ":サイト", + "modified": "変更", + "nsfw": "閲覧注意", + "show_nsfw": "閲覧注意のコンテンツを表示", + "theme": "テーマ", + "sponsors": "スポンサー", + "sponsor_message": "Lemmy は自由で<1>オープンソースの、つまり広告も収益化もベンチャーキャピタルも決してないソフトウェアです。あなたの寄付はプロジェクトの開発を直接支援します。次の方々に感謝します:", + "support_on_patreon": "Patreon で支援", + "support_on_liberapay": "Liberapay で支援", + "donate_to_lemmy": "Lemmy に寄付", + "donate": "寄付", + "general_sponsors": "ジェネラルスポンサーは Lemmy に $10 ~ $39 の支払いを申し出てくれた方達です。", + "crypto": "暗号通貨", + "bitcoin": "ビットコイン", + "ethereum": "Ethereum", + "monero": "Monero", + "code": "コード", + "joined": "登録", + "by": "投稿者", + "to": "宛先", + "transfer_community": "コミュニティを譲渡", + "transfer_site": "サイトを譲渡", + "are_you_sure": "本当によろしいですか?", + "yes": "はい", + "no": "いいえ", + "powered_by": "Powered by", + "landing_0": "Lemmy は<1>リンクアグリゲーター / Reddit 代替ソフトウェアで、<2>fediverse 上で動作することを目的にしています。<3>セルフホスト可能で、リアルタイム更新のコメントスレッドがあり、小さい(<4>80kB以下)ものです。ActivityPub ネットワークへの連合が計画にあります。<5>まだ<6>初期のベータバージョンで、現在は多くの機能がうまく動作しないか実装されていません。<7>新機能の提案やバグの報告は<8>こちらでお願いします。<9><10>Rust、<11>Actix、<12>Inferno、<13>Typescriptで作っています。", + "not_logged_in": "ログインしていません。", + "logged_in": "ログインしました。", + "community_ban": "このコミュニティへのアクセスを禁止されています。", + "site_ban": "サイトへのアクセスを禁止されています。", + "couldnt_create_comment": "投稿を作成できませんでした。", + "couldnt_find_community": "コミュニティが見付かりません。", + "couldnt_find_post": "投稿が見付かりません。", + "couldnt_find_that_username_or_email": "ユーザー名またはメールアドレスが見付かりません。", + "password_incorrect": "パスワードが不正です。", + "passwords_dont_match": "パスワードが一致しません。", + "admin_already_created": "済みませんが、既に管理者が設定されています。", + "email_already_exists": "メールアドレスが既に使用されています", + "time": "時刻", + "action": "行動" +} diff --git a/ui/translations/pt_br.json b/ui/translations/pt_BR.json similarity index 100% rename from ui/translations/pt_br.json rename to ui/translations/pt_BR.json