hensei-web/public/locales/ja/common.json
Justin Edmund 65bc7100c4
Deploy transcendence fixes (#351)
* Rich text editor and support for tagging objects (#340)

* Preliminary work around making an Element type

* Disabled Youtube code for now

* Clean description with DOMPurify

* Update GranblueElement with slug

* Add new api endpoint for searching all resources

* Add new variables and themes

* Remove fixed height on html tag for now

* Update README.md

We renamed the folders for character images from `chara-` to `character-`

* Add no results string

* Add tiptap and associated packages

* Update .gitignore

* Update components that use character images

* Add Editor component

This commit adds the bulk of the code for our new rich-text editor. The Editor component will be used to edit and display rich text via Tiptap.

* Add mention components

This adds the code required for us to mention objects in rich text fields like team descriptions.

The mentionSuggestion util fetches data from the server and serves it to MentionList for the user to select, then inserts it into the Editor as a token.

* Implements Editor in edit team and team footer

This implements the Editor component in EditPartyModal and PartyFooter. In PartyFooter, it is read-only.

* Remove min-width on tokens

* Add rudimentary conversion for old descriptions

Old descriptions just translate as a blob of text, so we try to insert some paragraphs and newlines to keep things presentable and lessen the load if users decide to update

* Add support for displaying jobs in MentionList

* Handle numbers and value=0 better

* Keep description reactive

This shouldn't work? The snapshot should be the reactive one? I don't fucking know

* Send locale to api with search query

* Delete getLocale.tsx

We didn't actually use this

* Fix build errors

* Override peer dependencies for tiptap mentions

They haven't fixed the suggestion plugin, so we have to use a beta version

* Fix background-color on CharacterRep

* Tiptap updates (#343)

* Reinstantiate editor on changes

We can't dynamically update the content, so we have to recreate the Editor whenever something changes (page loads and updates)

* Fix import

@tiptap/core is different than @tiptap/react, who knew

* Added several Tiptap components

* Added a Remix icon that isn't in remixicon-react

* Add colors for highlights

* Add ToolbarButton component

This is to standardize adding Toolbar icons so it wasn't a miserable mess in the Editor file

* Add extensions and implement ToolbarButton

* Remove unused code

* Use party prop and add keys

We always want to use the party in props until the transformer work is done and our source of truth is more reliable.

Also, we are using keys to ensure that the component reloads on new page.

* Component cleanup

* Always use props.party

* Ensure content gets reset when edits are committed

Here, we do some tactical bandaid fixes to ensure that when the user saves data to the server, the editor will show the freshest data in both editable and read-only mode.

In the Editor, its as easy as calling the setContent command in a useEffect hook when the content changes.

In the party, we are saving party in a state and passing it down to the components via props. This is because the party prop we get from pages is only from the first time the server loaded data, so any edits are not reflected. The app state should have the latest updates, but due to reasons I don't completely understand, it is showing the old state first and then the one we want, causing the Editor to get stuck on old data.

By storing the party in a state, we can populate the state from the server when the component mounts, then update it whenever the user saves data since all party data is saved in that component.

* Fix build errors

* Fix icon path

* Remove duplicate binding

* Fix styles

* Update transcendence components to work with CSS modules (#350)

* Update transcendence components to use CSS modules

* Fix summon transcendence

Summon transcendence was doing something wonky. This adapts the updateUncap endpoint method to make it a little bit clearer whats going on.

* Add toolbar localizations

* Allow translation of Heading icons

* Show localized placeholder for team name

* Add placeholder extension

* Add placeholder to party description

* Ensure name modification works right

Needed a null check? for some reason?
2023-07-06 17:09:21 -07:00

594 lines
20 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"about": {
"segmented_control": {
"about": "サイトについて",
"updates": "変更ログ",
"roadmap": "ロードマップ"
}
},
"accessories": {
"paladin": "盾",
"manadiver": "マナベリ"
},
"alert": {
"confirm_logout": "ログアウトしますか",
"unsaved_changes_party": "<strong>「{objectName}」</strong>という編成の変更は保存していません。<br/><br/>変更を保存せずに続けますか?",
"unsaved_changes_object": "<strong>「{objectName}」</strong>の変更は保存していません。<br/><br/>変更を保存せずに続けますか?",
"incompatible_weapon": "Additional Weaponsに装備できない武器を入れました。"
},
"ax": {
"no_skill": "EXスキルなし",
"errors": {
"value_too_low": "{{name}}は最低{{minValue}}{{suffix}}を入力してください",
"value_too_high": "{{name}}は最大{{maxValue}}{{suffix}}を入力してください",
"value_not_whole": "{{name}}は整数でなければなりません",
"value_empty": "{{name}}を入力してください"
}
},
"awakening": {
"no_type": "覚醒タイプなし",
"errors": {
"value_too_low": "覚醒レベルは最低{{minValue}}を入力してください",
"value_too_high": "覚醒レベルは最大{{maxValue}}を入力してください",
"value_not_whole": "覚醒レベルは整数でなければなりません",
"value_empty": "覚醒レベルを入力してください"
}
},
"buttons": {
"cancel": "キャンセル",
"copy": "リンクをコピー",
"confirm": "OK",
"delete": "編成を削除",
"show_info": "詳細を編集",
"save_info": "詳細を保存",
"hide_info": "詳細を非表示",
"remix": "リミックス",
"save": "保存する",
"saved": "保存",
"menu": "メニュー",
"new": "作成",
"wiki": "gbf.wikiで詳しく見る"
},
"combobox": {
"selected": "選択済み"
},
"context": {
"modify": {
"character": "キャラクターを変更",
"summon": "召喚石を変更",
"weapon": "武器を変更"
},
"remove": "編成から削除",
"remove_job_skill": "ジョブスキルを削除"
},
"dropdown": {
"party": {
"copy": "編成のリンクをコピー",
"delete": "編成を削除",
"remix": "編成をリミックス"
}
},
"earring": {
"errors": {
"value_too_low": "{{name}}は最低{{minValue}}を入力してください",
"value_too_high": "{{name}}は最大{{maxValue}}を入力してください",
"value_not_whole": "{{name}}は整数でなければなりません",
"value_empty": "{{name}}を入力してください"
}
},
"elements": {
"null": "無",
"wind": "風",
"fire": "火",
"water": "水",
"earth": "土",
"dark": "闇",
"light": "光",
"full": {
"all": "全属性",
"null": "無属性",
"wind": "風属性",
"fire": "火属性",
"water": "水属性",
"earth": "土属性",
"dark": "闇属性",
"light": "光属性"
}
},
"errors": {
"internal_server_error": {
"title": "サーバーエラー",
"description": "サーバーから届いたエラーは自動的に復されなかったため、再びリクエストを行なってください"
},
"not_found": {
"title": "見つかりませんでした",
"description": "探しているページは見つかりませんでした",
"button": "新しい編成を作成"
},
"server_unavailable": {
"title": "サーバーダウン",
"message": "現在サーバーがダウンしています。しばらくしてから再度お試しください",
"discord": "Discordでサービスの状態を確認する"
},
"validation": {
"guidebooks": "セフィラ導本を複数個装備することはできません"
},
"unauthorized": "行ったアクションを実行する権限がありません"
},
"filters": {
"name": "フィルター",
"labels": {
"element": "属性",
"series": "シリーズ",
"proficiency": "武器種",
"rarity": "レアリティ"
}
},
"footer": {
"description": {
"label": "説明",
"empty": "この編成には説明がありません"
},
"remixes": {
"label_zero": "リミックス",
"label": "リミックス: {{count}}個",
"empty": "この編成はリミックスされていません"
}
},
"header": {
"anonymous": "無名",
"untitled_team": "{{username}}さんからの無題編成",
"new_team": "新編成",
"byline": "{{username}}さんからの{{partyName}}"
},
"job_skills": {
"all": "全てのアビリティ",
"buffing": "強化アビリティ",
"debuffing": "弱体アビリティ",
"damaging": "ダメージアビリティ",
"healing": "回復アビリティ",
"emp": "リミットアビリティ",
"base": "ベースアビリティ",
"state": {
"selectable": "アビリティを選択",
"no_skill": "設定されていません"
}
},
"menu": {
"about": "このサイトについて",
"changelog": "変更ログ",
"guides": "攻略",
"language": "言語",
"login": "ログイン",
"profile": "プロフィール",
"roadmap": "ロードマップ",
"new": "新しい編成",
"saved": "保存した編成",
"settings": "アカウント設定",
"signup": "登録",
"teams": "編成一覧",
"logout": "ログアウト"
},
"modals": {
"about": {
"title": "このサイトについて"
},
"roadmap": {
"title": "ロードマップ"
},
"changelog": {
"title": "変更ログ"
},
"characters": {
"title": "キャラクター",
"subtitles": {
"ring": "EXリミットボーナス",
"earring": "エーテリアルプラス",
"permanent": "マスタリーボーナス",
"awakening": "覚醒"
},
"messages": {
"remove": "<strong>{{character}}</strong>を編成から削除しますか?"
},
"buttons": {
"confirm": "キャラクターを変更する",
"remove": "キャラクターを削除する"
}
},
"conflict": {
"character": "<strong>同じ名前のキャラクター</strong>がパーティに編成されています。<br />以下のキャラクターを入れ替えますか?",
"weapon": {
"generic": "<strong>{{series}}</strong>の武器に装備制限があり、武器が既に装備されています。<br /><br />以下の武器を入れ替えますか?",
"opus-draconic": "<strong>終末の神器シリーズ</strong>と<strong>ドラコニックシリーズ</strong>から1本しか装備できない制限があり、武器が既に装備されています。<br /><br />以下の武器を入れ替えますか?"
},
"buttons": {
"confirm": "入れ替える"
}
},
"edit_team": {
"title": "編成の詳細を編集",
"segments": {
"basic_info": "基本情報",
"properties": "バトル設定・結果"
},
"buttons": {
"add_field": "フィールドを追加",
"confirm": "詳細を保存する"
},
"labels": {
"name": "編成名",
"description": "説明",
"raid": "バトル",
"extra": "Additional weapons",
"charge_attack": "奥義",
"full_auto": "フルオート",
"auto_guard": "オートガード",
"auto_summon": "オート召喚",
"turn_count": "経過ターン",
"button_count": "ポチ数",
"chain_count": "チェイン数",
"clear_time": "討伐時間"
},
"descriptions": {
"extra": "選択したバトルによってAdditional Weapons枠が表示される"
},
"placeholders": {
"name": "編成に名前を付ける",
"description": "編成についてのメモを書ける\n\nどんなムーブをしていますか?\n代用キャラや武器は"
},
"extra_notice": "Additional Weapons枠に武器を装備することはできます",
"extra_notice_guidebooks": "Additional Weaponsまたはセフィラ導本を装備することはできます"
},
"delete_team": {
"title": "編成を削除しますか",
"description": "編成を削除する操作は取り消せません。",
"buttons": {
"confirm": "削除",
"cancel": "キャンセル"
}
},
"filters": {
"title": "フィルター設定",
"labels": {
"charge_attack": "奥義",
"full_auto": "フルオート",
"auto_guard": "オートガード",
"max_buttons": "最大ポチ数",
"max_turns": "最大ターン数",
"min_characters": "最小キャラクター数",
"min_summons": "最小召喚石数",
"min_weapons": "最小武器数",
"name_quality": "無題の編成なし",
"user_quality": "無名のユーザーなし",
"original_only": "リミックスなし"
},
"notice": "フィルターは<strong>保存した編成</strong>と<strong>ユーザープロフィール</strong>には保存されません",
"options": {
"on": "ON",
"off": "OFF",
"on_and_off": "両方"
},
"buttons": {
"confirm": "フィルターを保存する",
"clear": "保存したフィルターをリセット"
}
},
"guidebooks": {
"buttons": {
"remove": "導本を削除する"
}
},
"job_skills": {
"messages": {
"remove": "<strong>{{job_skill}}</strong>を編成から削除しますか?"
},
"buttons": {
"remove": "ジョブスキルを削除する"
}
},
"login": {
"title": "ログイン",
"buttons": {
"confirm": "ログイン"
},
"errors": {
"empty_email": "メールアドレスを入力して下さい",
"empty_password": "パスワードを入力して下さい",
"invalid_email": "メールアドレスは有効ではありません",
"invalid_credentials": "パスワードまたはメールアドレスが違います"
},
"placeholders": {
"email": "メールアドレス",
"password": "パスワード"
}
},
"remix_team": {
"title": "編成をリミックス",
"description": {
"creator": "既に<strong>{{name}}</strong>の作家のため, 本当にリミックスでコピーを作成しますか?",
"viewer": "編成をリミックスすると変更をするために自アカウントにコピーを作成します。<strong>{{name}}</strong>をリミックスをしますか?"
},
"buttons": {
"confirm": "リミックス",
"cancel": "キャンセル"
}
},
"settings": {
"title": "アカウント設定",
"labels": {
"picture": "プロフィール画像",
"language": "言語",
"gender": "主人公",
"private": "プライベート",
"theme": "表示"
},
"descriptions": {
"picture": "名前の隣に表示する",
"gender": "編成で表示するキャラクター",
"private": "プロフィールを隠し、編成をコレクションに表示されないようにします"
},
"gender": {
"gran": "グラン",
"djeeta": "ジータ"
},
"language": {
"english": "英語",
"japanese": "日本語"
},
"theme": {
"light": "ライト",
"dark": "ダーク",
"system": "システム"
},
"buttons": {
"confirm": "設定を保存する"
}
},
"signup": {
"title": "アカウント登録",
"buttons": {
"confirm": "登録する"
},
"agreement": "続行することで<1>利用規約</1>に同意し、<br/><1>プライバシーポリシー</1>を読んだものとみなされます。",
"errors": {
"field_in_use": "入力された{{field}}は既に登録済みです",
"empty_email": "メールアドレスを入力して下さい",
"invalid_email": "メールアドレスは有効ではありません",
"username_too_short": "ユーザーネームは3文字以上で入力してください",
"username_too_long": "ユーザーネームは20文字以内で入力してください",
"empty_password": "パスワードを入力して下さい",
"password_contains_username": "パスワードにはユーザー名を含めないでください",
"password_too_short": "パスワードは8文字以上で入力してください",
"mismatched_passwords": "パスワードとパスワード確認を確かめてください",
"invalid_credentials": "パスワードまたはメールアドレスが違います"
},
"placeholders": {
"username": "ユーザー名",
"email": "メールアドレス",
"password": "パスワード",
"password_confirm": "パスワード確認"
}
},
"summon": {
"buttons": {
"remove": "召喚石を削除する"
}
},
"weapon": {
"title": "武器変更",
"buttons": {
"confirm": "武器を変更する",
"remove": "武器を削除する"
},
"subtitles": {
"element": "属性",
"ax_skills": "EXスキル",
"awakening": "覚醒",
"weapon_keys": "武器スキル"
}
}
},
"page": {
"titles": {
"about": "granblue.teamについて",
"updates": "変更ログ / granblue.team",
"roadmap": "ロードマップ / granblue.team",
"discover": "編成を見出す / granblue.team",
"new": "新しい編成 / granblue.team",
"profile": "@{{username}}さんの作った編成 / granblue.team",
"team": "{{emoji}} {{teamName}}、{{username}}さんから / granblue.team",
"saved": "保存した編成"
},
"descriptions": {
"about": "granblue.teamについて / グランブルーファンタジーの編成を探したり保存したりできる",
"updates": "granblue.teamの最新変更について",
"roadmap": "granblue.teamの開発予定機能",
"discover": "グランブルーファンタジーの編成をマルチ、属性、作った時間などで探したり保存したりできる",
"new": "グランブルーファンタジーの編成を作成し、騎空士とシェアできるサイトgranblue.team",
"profile": "@{{username}}の編成を調査し、マルチ、属性、または作った時間でフィルターする",
"team": "granblue.teamで{{username}}さんが作った{{raidName}}の編成を調査できる"
}
},
"party": {
"segmented_control": {
"class": "ジョブ",
"characters": "キャラ",
"weapons": "武器",
"summons": "召喚石"
},
"details": {
"labels": {
"charge_attack": "奥義",
"full_auto": "フルオート",
"auto_guard": "オートガード",
"auto_summon": "オート召喚",
"turn_count": "経過ターン",
"button_chain": "ポチチェイン",
"clear_time": "討伐時間"
},
"suffix": {
"buttons": "ポチ",
"chains": "チェ",
"minutes": "分",
"seconds": "秒"
},
"turns": {
"with_count_one": "{{count}}ターン",
"with_count_other": "{{count}}ターン"
}
}
},
"proficiencies": {
"sabre": "剣",
"dagger": "短剣",
"spear": "槍",
"axe": "斧",
"staff": "杖",
"gun": "銃",
"melee": "拳",
"bow": "弓",
"harp": "琴",
"katana": "刀"
},
"raids": {
"all": "すべてのバトル",
"placeholder": "バトルを選択...",
"sections": {
"raids": "マルチ",
"solo": "ソロ",
"events": "イベント"
}
},
"rarities": {
"r": "R",
"sr": "SR",
"ssr": "SSR"
},
"recency": {
"all_time": "全ての期間",
"last_day": "1日",
"last_week": "7日",
"last_month": "1ヶ月",
"last_3_months": "3ヶ月",
"last_6_months": "6ヶ月",
"last_year": "1年"
},
"saved": {
"title": "保存した編成",
"loading": "ロード中...",
"not_found": "編成はまだ保存していません"
},
"search": {
"recent": "最近追加した",
"result_count": "{{record_count}}件",
"errors": {
"start_typing": "{{object}}名を入力してください",
"min_length": "3文字以上を入力してください",
"no_results": "'{{query}}'の検索結果が見つかりませんでした",
"no_results_generic": "検索結果が見つかりませんでした",
"end_results": "検索結果これ以上ありません"
},
"placeholders": {
"weapon": "武器を検索...",
"summon": "召喚石を検索...",
"character": "キャラを検索...",
"job_skill": "ジョブのスキルを検索...",
"guidebook": "導本を検索...",
"raid": "バトルを検索..."
}
},
"series": {
"seraphic": "セラフィックウェポン",
"grand": "リミテッドシリーズ",
"opus": "終末の神器",
"draconic": "ドラコニックウェポン",
"primal": "プライマルシリーズ",
"olden_primal": "オールド・プライマルシリーズ",
"beast": "四象武器",
"omega": "マグナシリーズ",
"regalia": "レガリアシリーズ",
"militis": "ミーレスシリーズ",
"xeno": "六道武器",
"astral": "アストラルウェポン",
"rose": "ローズシリーズ",
"hollowsky": "虚ろなる神器",
"ultima": "オメガウェポン",
"bahamut": "バハムートウェポン",
"epic": "エピックウェポン",
"ennead": "エニアドシリーズ",
"cosmic": "コスモスシリーズ",
"ancestral": "アンセスタルシリーズ",
"superlative": "スペリオシリーズ",
"vintage": "ヴィンテージシリーズ",
"class_champion": "英雄武器",
"sephira": "セフィラン・オールドウェポン",
"new_world": "新世界の礎",
"revenant": "天星器",
"proving": "ブレイブウェポン",
"disaster": "レヴァンスウェポン",
"illustrious": "ルミナスシリーズ",
"world": "ワールドシリーズ"
},
"summons": {
"main": "メイン",
"friend": "フレンド",
"summons": "召喚石",
"subaura": "サブ加護召喚石"
},
"teams": {
"title": "編成一覧",
"loading": "ロード中...",
"not_found": "編成は見つかりませんでした"
},
"toasts": {
"copied": "この編成のURLはクリップボードにコピーされました",
"remixed": "{{title}}をリミックスしました",
"update": {
"title": "新アプデ",
"description": {
"content": "グランブルーファンタジーの新アプデのコンテンツが追加しました。",
"feature": "編成をリミックスしたり、キャラの指輪や耳飾りを付けたり、盾やマナベリを装備したりことをできるようにしました。"
},
"button": "詳細をみる"
}
},
"tokens": {
"remix": "リミックスされた"
},
"toolbar": {
"tooltips": {
"bold": "太字",
"italic": "斜体",
"strike": "取り消し線",
"highlight": "ハイライト",
"link": "リンクを挿入",
"youtube": "Youtube動画を埋め込む",
"heading": "見出し {{level}}",
"bulletList": "箇条書き",
"orderedList": "番号リスト"
}
},
"tooltips": {
"copy_url": "この編成のURLをコピーする",
"new": "新しい編成を作成する",
"save": "この編成をアカウントに保存する",
"remix": {
"create": "この編成の複製を作成する",
"source": "原編成へ",
"deleted": "原編成は削除されました"
}
},
"equipped": "装備した",
"extra_weapons": "Additional Weapons",
"sephira_guidebooks": "セフィラ導本",
"coming_soon": "開発中",
"new_party": "新しい編成",
"no_accessory": "{{accessory}}は装備していません",
"no_title": "無題",
"no_raid": "マルチなし",
"no_user": "無名",
"no_job": "ジョブなし",
"no_value": "値なし",
"loading": "ロード中...",
"level": "レベル"
}