add new lesson mode and started code refraction
This commit is contained in:
@@ -1,306 +1,396 @@
|
||||
import { createI18n } from 'vue-i18n'
|
||||
import { createI18n } from 'vue-i18n';
|
||||
|
||||
const messages = {
|
||||
en: {
|
||||
common: {
|
||||
close: "Close",
|
||||
cancel: "Cancel"
|
||||
},
|
||||
nav: {
|
||||
dashboard: "Dashboard",
|
||||
review: "Review",
|
||||
collection: "Collection",
|
||||
settings: "Settings",
|
||||
sync: "Sync",
|
||||
logout: "Logout",
|
||||
menu: "Menu"
|
||||
},
|
||||
login: {
|
||||
instruction: "Enter your WaniKani V2 API Key to login",
|
||||
placeholder: "Paste key here...",
|
||||
button: "Login",
|
||||
failed: "Login failed. Is server running?"
|
||||
},
|
||||
alerts: {
|
||||
syncSuccess: "Sync complete! Collection: {count}",
|
||||
syncFailed: "Sync failed.",
|
||||
logoutConfirm: "Are you sure you want to log out? This will end your session.",
|
||||
},
|
||||
hero: {
|
||||
welcome: "Welcome Back",
|
||||
subtitle: "Your mind is ready.",
|
||||
start: "Start Review",
|
||||
noReviews: "No Reviews",
|
||||
nextIn: "Next review in",
|
||||
now: "now",
|
||||
prioritize: "Prioritize Lower Levels ({count})"
|
||||
},
|
||||
stats: {
|
||||
mastery: "Mastery (Guru+)",
|
||||
srsDistribution: "SRS Levels",
|
||||
accuracy: "Global Accuracy",
|
||||
correct: "Correct",
|
||||
total: "Total",
|
||||
next24: "Next 24h",
|
||||
availableNow: "Available Now",
|
||||
inHours: "In {n} hour | In {n} hours",
|
||||
noIncoming: "No reviews incoming for 24 hours.",
|
||||
items: "items",
|
||||
reviewsCount: "{count} reviews",
|
||||
en: {
|
||||
common: {
|
||||
close: 'Close',
|
||||
cancel: 'Cancel',
|
||||
},
|
||||
nav: {
|
||||
dashboard: 'Dashboard',
|
||||
review: 'Review',
|
||||
collection: 'Collection',
|
||||
settings: 'Settings',
|
||||
sync: 'Sync',
|
||||
logout: 'Logout',
|
||||
menu: 'Menu',
|
||||
},
|
||||
login: {
|
||||
instruction: 'Enter your WaniKani V2 API Key to login',
|
||||
placeholder: 'Paste key here...',
|
||||
button: 'Login',
|
||||
failed: 'Login failed. Is server running?',
|
||||
},
|
||||
alerts: {
|
||||
syncSuccess: 'Sync complete! Collection: {count}',
|
||||
syncFailed: 'Sync failed.',
|
||||
logoutConfirm: 'Are you sure you want to log out? This will end your session.',
|
||||
},
|
||||
lesson: {
|
||||
phasePrimer: 'Study',
|
||||
phaseDemo: 'Observation',
|
||||
phaseGuided: 'Guided',
|
||||
phasePractice: 'Recall',
|
||||
understand: 'I Understand',
|
||||
ready: 'Ready to Draw',
|
||||
startPractice: 'Start Practice',
|
||||
continue: 'Continue',
|
||||
streak: 'Correct: {n} / {total}',
|
||||
hint: 'Show Hint (Resets Streak)',
|
||||
hintAction: 'Hint',
|
||||
watchAgain: 'Watch Again',
|
||||
completeTitle: 'Lesson Complete!',
|
||||
completeBody: 'You have unlocked new Kanji for review.',
|
||||
learned: "You've learned {n} new kanji.",
|
||||
components: 'Components',
|
||||
observe: 'Observe Stroke Order',
|
||||
trace: 'Trace',
|
||||
drawStep: 'Draw ({n}/{total})',
|
||||
backToDashboard: 'Back to Dashboard',
|
||||
},
|
||||
hero: {
|
||||
lessons: 'Lessons',
|
||||
welcome: 'Welcome Back',
|
||||
subtitle: 'Your mind is ready.',
|
||||
start: 'Start Review',
|
||||
noReviews: 'No Reviews',
|
||||
nextIn: 'Next review in',
|
||||
now: 'now',
|
||||
prioritize: 'Prioritize Lower Levels ({count})',
|
||||
},
|
||||
stats: {
|
||||
mastery: 'Mastery (Guru+)',
|
||||
srsDistribution: 'SRS Levels',
|
||||
accuracy: 'Global Accuracy',
|
||||
correct: 'Correct',
|
||||
total: 'Total',
|
||||
next24: 'Next 24h',
|
||||
availableNow: 'Available Now',
|
||||
inHours: 'In {n} hour | In {n} hours',
|
||||
noIncoming: 'No reviews incoming for 24 hours.',
|
||||
items: 'items',
|
||||
reviewsCount: '{count} reviews',
|
||||
|
||||
consistency: "Study Consistency",
|
||||
less: "Less",
|
||||
more: "More",
|
||||
consistency: 'Study Consistency',
|
||||
less: 'Less',
|
||||
more: 'More',
|
||||
|
||||
streakTitle: "Study Streak",
|
||||
days: "days",
|
||||
shieldActive: "Zen Shield Active: Protects streak if you miss 1 day.",
|
||||
shieldCooldown: "Regenerating: {n} days left",
|
||||
streakTitle: 'Study Streak',
|
||||
days: 'days',
|
||||
shieldActive: 'Zen Shield Active: Protects streak if you miss 1 day.',
|
||||
shieldCooldown: 'Regenerating: {n} days left',
|
||||
|
||||
ghostTitle: "Ghost Items",
|
||||
ghostSubtitle: "Lowest Accuracy",
|
||||
noGhosts: "No ghosts found! Keep it up."
|
||||
},
|
||||
settings: {
|
||||
title: "Settings",
|
||||
batchSize: "Review Batch Size",
|
||||
items: "Items",
|
||||
language: "Language",
|
||||
save: "Save & Close"
|
||||
},
|
||||
review: {
|
||||
meaning: "Meaning",
|
||||
level: "Level",
|
||||
draw: "Draw correctly",
|
||||
hint: "Hint Shown",
|
||||
tryAgain: "Try again",
|
||||
correct: "Correct!",
|
||||
next: "NEXT",
|
||||
sessionComplete: "Session Complete!",
|
||||
levelup: "You leveled up your Kanji skills.",
|
||||
back: "Back to Collection",
|
||||
caughtUp: "All Caught Up!",
|
||||
noReviews: "No reviews available right now.",
|
||||
viewCollection: "View Collection",
|
||||
queue: "Session queue:",
|
||||
loading: "Loading Kanji...",
|
||||
},
|
||||
collection: {
|
||||
searchLabel: "Search Kanji, Meaning, or Reading...",
|
||||
placeholder: "e.g. 'water', 'mizu', '水'",
|
||||
loading: "Loading Collection...",
|
||||
noMatches: "No matches found",
|
||||
tryDifferent: "Try searching for a different meaning or reading.",
|
||||
levelHeader: "LEVEL",
|
||||
onyomi: "On'yomi",
|
||||
kunyomi: "Kun'yomi",
|
||||
nanori: "Nanori",
|
||||
close: "Close"
|
||||
}
|
||||
},
|
||||
de: {
|
||||
common: {
|
||||
close: "Schließen",
|
||||
cancel: "Abbrechen"
|
||||
},
|
||||
nav: {
|
||||
dashboard: "Übersicht",
|
||||
review: "Lernen",
|
||||
collection: "Sammlung",
|
||||
settings: "Einstellungen",
|
||||
sync: "Sync",
|
||||
logout: "Abmelden",
|
||||
menu: "Menü"
|
||||
},
|
||||
login: {
|
||||
instruction: "Gib deinen WaniKani V2 API Key ein",
|
||||
placeholder: "Key hier einfügen...",
|
||||
button: "Anmelden",
|
||||
failed: "Login fehlgeschlagen. Läuft der Server?"
|
||||
},
|
||||
alerts: {
|
||||
syncSuccess: "Sync fertig! Sammlung: {count}",
|
||||
syncFailed: "Sync fehlgeschlagen.",
|
||||
logoutConfirm: "Möchtest du dich wirklich abmelden? Deine Sitzung wird beendet.",
|
||||
},
|
||||
hero: {
|
||||
welcome: "Willkommen zurück",
|
||||
subtitle: "Dein Geist ist bereit.",
|
||||
start: "Starten",
|
||||
noReviews: "Alles erledigt",
|
||||
nextIn: "Nächste Review in",
|
||||
now: "jetzt",
|
||||
prioritize: "Niedrige Stufen zuerst ({count})"
|
||||
},
|
||||
stats: {
|
||||
mastery: "Meisterschaft (Guru+)",
|
||||
srsDistribution: "SRS Verteilung",
|
||||
accuracy: "Genauigkeit",
|
||||
correct: "Richtig",
|
||||
total: "Gesamt",
|
||||
next24: "Nächste 24h",
|
||||
availableNow: "Jetzt verfügbar",
|
||||
inHours: "In {n} Stunde | In {n} Stunden",
|
||||
noIncoming: "Keine Reviews in den nächsten 24h.",
|
||||
items: "Einträge",
|
||||
reviewsCount: "{count} Reviews",
|
||||
ghostTitle: 'Ghost Items',
|
||||
ghostSubtitle: 'Lowest Accuracy',
|
||||
noGhosts: 'No ghosts found! Keep it up.',
|
||||
},
|
||||
settings: {
|
||||
title: 'Settings',
|
||||
batchSize: 'Review Batch Size',
|
||||
items: 'Items',
|
||||
language: 'Language',
|
||||
drawingTolerance: 'Drawing Tolerance',
|
||||
strict: 'Strict',
|
||||
loose: 'Loose',
|
||||
save: 'Save & Close',
|
||||
},
|
||||
review: {
|
||||
meaning: 'Meaning',
|
||||
level: 'Level',
|
||||
draw: 'Draw correctly',
|
||||
hint: 'Hint Shown',
|
||||
showHint: 'Show Hint',
|
||||
redoLesson: 'Redo Lesson',
|
||||
tryAgain: 'Try again',
|
||||
correct: 'Correct!',
|
||||
next: 'NEXT',
|
||||
sessionComplete: 'Session Complete!',
|
||||
levelup: 'You leveled up your Kanji skills.',
|
||||
back: 'Back to Collection',
|
||||
caughtUp: 'All Caught Up!',
|
||||
noReviews: 'No reviews available right now.',
|
||||
viewCollection: 'View Collection',
|
||||
queue: 'Session queue:',
|
||||
loading: 'Loading Kanji...',
|
||||
},
|
||||
collection: {
|
||||
searchLabel: 'Search Kanji, Meaning, or Reading...',
|
||||
placeholder: "e.g. 'water', 'mizu', '水'",
|
||||
loading: 'Loading Collection...',
|
||||
noMatches: 'No matches found',
|
||||
tryDifferent: 'Try searching for a different meaning or reading.',
|
||||
levelHeader: 'LEVEL',
|
||||
onyomi: "On'yomi",
|
||||
kunyomi: "Kun'yomi",
|
||||
nanori: 'Nanori',
|
||||
close: 'Close',
|
||||
startLesson: 'Start Lesson',
|
||||
redoLesson: 'Redo Lesson',
|
||||
},
|
||||
},
|
||||
de: {
|
||||
common: {
|
||||
close: 'Schließen',
|
||||
cancel: 'Abbrechen',
|
||||
},
|
||||
nav: {
|
||||
dashboard: 'Übersicht',
|
||||
review: 'Lernen',
|
||||
collection: 'Sammlung',
|
||||
settings: 'Einstellungen',
|
||||
sync: 'Sync',
|
||||
logout: 'Abmelden',
|
||||
menu: 'Menü',
|
||||
},
|
||||
login: {
|
||||
instruction: 'Gib deinen WaniKani V2 API Key ein',
|
||||
placeholder: 'Key hier einfügen...',
|
||||
button: 'Anmelden',
|
||||
failed: 'Login fehlgeschlagen. Läuft der Server?',
|
||||
},
|
||||
alerts: {
|
||||
syncSuccess: 'Sync fertig! Sammlung: {count}',
|
||||
syncFailed: 'Sync fehlgeschlagen.',
|
||||
logoutConfirm: 'Möchtest du dich wirklich abmelden? Deine Sitzung wird beendet.',
|
||||
},
|
||||
lesson: {
|
||||
phasePrimer: 'Lernen',
|
||||
phaseDemo: 'Beobachtung',
|
||||
phaseGuided: 'Geführt',
|
||||
phasePractice: 'Abruf',
|
||||
understand: 'Verstanden',
|
||||
ready: 'Bereit zum Zeichnen',
|
||||
startPractice: 'Üben Starten',
|
||||
continue: 'Weiter',
|
||||
streak: 'Richtig: {n} / {total}',
|
||||
hint: 'Hinweis (Setzt Serie zurück)',
|
||||
hintAction: 'Hinweis',
|
||||
watchAgain: 'Nochmal ansehen',
|
||||
completeTitle: 'Lektion Fertig!',
|
||||
completeBody: 'Neue Kanji für Reviews freigeschaltet.',
|
||||
learned: 'Du hast {n} neue Kanji gelernt.',
|
||||
components: 'Komponenten',
|
||||
observe: 'Strichfolge beobachten',
|
||||
trace: 'Nachzeichnen',
|
||||
drawStep: 'Zeichnen ({n}/{total})',
|
||||
backToDashboard: 'Zurück zur Übersicht',
|
||||
},
|
||||
hero: {
|
||||
lessons: 'Lektionen',
|
||||
welcome: 'Willkommen zurück',
|
||||
subtitle: 'Dein Geist ist bereit.',
|
||||
start: 'Starten',
|
||||
noReviews: 'Alles erledigt',
|
||||
nextIn: 'Nächste Review in',
|
||||
now: 'jetzt',
|
||||
prioritize: 'Niedrige Stufen zuerst ({count})',
|
||||
},
|
||||
stats: {
|
||||
mastery: 'Meisterschaft (Guru+)',
|
||||
srsDistribution: 'SRS Verteilung',
|
||||
accuracy: 'Genauigkeit',
|
||||
correct: 'Richtig',
|
||||
total: 'Gesamt',
|
||||
next24: 'Nächste 24h',
|
||||
availableNow: 'Jetzt verfügbar',
|
||||
inHours: 'In {n} Stunde | In {n} Stunden',
|
||||
noIncoming: 'Keine Reviews in den nächsten 24h.',
|
||||
items: 'Einträge',
|
||||
reviewsCount: '{count} Reviews',
|
||||
|
||||
consistency: "Lern-Konstanz",
|
||||
less: "Weniger",
|
||||
more: "Mehr",
|
||||
consistency: 'Lern-Konstanz',
|
||||
less: 'Weniger',
|
||||
more: 'Mehr',
|
||||
|
||||
streakTitle: "Lern-Serie",
|
||||
days: "Tage",
|
||||
shieldActive: "Zen-Schild Aktiv: Schützt dich bei einem verpassten Tag.",
|
||||
shieldCooldown: "Regeneriert: noch {n} Tage",
|
||||
streakTitle: 'Lern-Serie',
|
||||
days: 'Tage',
|
||||
shieldActive: 'Zen-Schild Aktiv: Schützt dich bei einem verpassten Tag.',
|
||||
shieldCooldown: 'Regeneriert: noch {n} Tage',
|
||||
|
||||
ghostTitle: "Geister-Items",
|
||||
ghostSubtitle: "Niedrigste Genauigkeit",
|
||||
noGhosts: "Keine Geister gefunden! Weiter so."
|
||||
},
|
||||
settings: {
|
||||
title: "Einstellungen",
|
||||
batchSize: "Anzahl pro Sitzung",
|
||||
items: "Einträge",
|
||||
language: "Sprache",
|
||||
save: "Speichern & Schließen"
|
||||
},
|
||||
review: {
|
||||
meaning: "Bedeutung",
|
||||
level: "Stufe",
|
||||
draw: "Zeichne das Kanji",
|
||||
hint: "Hinweis angezeigt",
|
||||
tryAgain: "Nochmal versuchen",
|
||||
correct: "Richtig!",
|
||||
next: "WEITER",
|
||||
sessionComplete: "Sitzung beendet!",
|
||||
levelup: "Du hast deine Kanji-Skills verbessert.",
|
||||
back: "Zurück zur Sammlung",
|
||||
caughtUp: "Alles erledigt!",
|
||||
noReviews: "Gerade keine Reviews verfügbar.",
|
||||
viewCollection: "Zur Sammlung",
|
||||
queue: "Verbleibend:",
|
||||
loading: "Lade Kanji...",
|
||||
},
|
||||
collection: {
|
||||
searchLabel: "Suche Kanji, Bedeutung oder Lesung...",
|
||||
placeholder: "z.B. 'Wasser', 'mizu'",
|
||||
loading: "Lade Sammlung...",
|
||||
noMatches: "Keine Treffer",
|
||||
tryDifferent: "Versuche einen anderen Suchbegriff.",
|
||||
levelHeader: "STUFE",
|
||||
onyomi: "On'yomi",
|
||||
kunyomi: "Kun'yomi",
|
||||
nanori: "Nanori",
|
||||
close: "Schließen"
|
||||
}
|
||||
},
|
||||
ja: {
|
||||
common: {
|
||||
close: "閉じる",
|
||||
cancel: "キャンセル"
|
||||
},
|
||||
nav: {
|
||||
dashboard: "ダッシュボード",
|
||||
review: "復習",
|
||||
collection: "コレクション",
|
||||
settings: "設定",
|
||||
sync: "同期",
|
||||
logout: "ログアウト",
|
||||
menu: "メニュー"
|
||||
},
|
||||
login: {
|
||||
instruction: "WaniKani V2 APIキーを入力してください",
|
||||
placeholder: "キーを貼り付け...",
|
||||
button: "ログイン",
|
||||
failed: "ログイン失敗。サーバーは起動していますか?"
|
||||
},
|
||||
alerts: {
|
||||
syncSuccess: "同期完了! コレクション: {count}",
|
||||
syncFailed: "同期に失敗しました。",
|
||||
logoutConfirm: "ログアウトしてもよろしいですか?セッションが終了します。",
|
||||
},
|
||||
hero: {
|
||||
welcome: "お帰りなさい",
|
||||
subtitle: "準備は完了です。",
|
||||
start: "復習開始",
|
||||
noReviews: "レビューなし",
|
||||
nextIn: "次の復習まで",
|
||||
now: "今",
|
||||
prioritize: "低レベルを優先 ({count})"
|
||||
},
|
||||
stats: {
|
||||
mastery: "習得度 (Guru+)",
|
||||
srsDistribution: "SRS分布",
|
||||
accuracy: "正解率",
|
||||
correct: "正解",
|
||||
total: "合計",
|
||||
next24: "今後24時間",
|
||||
availableNow: "今すぐ可能",
|
||||
inHours: "{n}時間後",
|
||||
noIncoming: "24時間以内のレビューはありません。",
|
||||
items: "個",
|
||||
reviewsCount: "{count} レビュー",
|
||||
ghostTitle: 'Geister-Items',
|
||||
ghostSubtitle: 'Niedrigste Genauigkeit',
|
||||
noGhosts: 'Keine Geister gefunden! Weiter so.',
|
||||
},
|
||||
settings: {
|
||||
title: 'Einstellungen',
|
||||
batchSize: 'Anzahl pro Sitzung',
|
||||
items: 'Einträge',
|
||||
language: 'Sprache',
|
||||
drawingTolerance: 'Zeichentoleranz',
|
||||
strict: 'Strikt',
|
||||
loose: 'Locker',
|
||||
save: 'Speichern & Schließen',
|
||||
},
|
||||
review: {
|
||||
meaning: 'Bedeutung',
|
||||
level: 'Stufe',
|
||||
draw: 'Zeichne das Kanji',
|
||||
hint: 'Hinweis angezeigt',
|
||||
showHint: 'Hinweis zeigen',
|
||||
redoLesson: 'Lektion wiederholen',
|
||||
tryAgain: 'Nochmal versuchen',
|
||||
correct: 'Richtig!',
|
||||
next: 'WEITER',
|
||||
sessionComplete: 'Sitzung beendet!',
|
||||
levelup: 'Du hast deine Kanji-Skills verbessert.',
|
||||
back: 'Zurück zur Sammlung',
|
||||
caughtUp: 'Alles erledigt!',
|
||||
noReviews: 'Gerade keine Reviews verfügbar.',
|
||||
viewCollection: 'Zur Sammlung',
|
||||
queue: 'Verbleibend:',
|
||||
loading: 'Lade Kanji...',
|
||||
},
|
||||
collection: {
|
||||
searchLabel: 'Suche Kanji, Bedeutung oder Lesung...',
|
||||
placeholder: "z.B. 'Wasser', 'mizu'",
|
||||
loading: 'Lade Sammlung...',
|
||||
noMatches: 'Keine Treffer',
|
||||
tryDifferent: 'Versuche einen anderen Suchbegriff.',
|
||||
levelHeader: 'STUFE',
|
||||
onyomi: "On'yomi",
|
||||
kunyomi: "Kun'yomi",
|
||||
nanori: 'Nanori',
|
||||
close: 'Schließen',
|
||||
startLesson: 'Lektion starten',
|
||||
redoLesson: 'Lektion wiederholen',
|
||||
},
|
||||
},
|
||||
ja: {
|
||||
common: {
|
||||
close: '閉じる',
|
||||
cancel: 'キャンセル',
|
||||
},
|
||||
nav: {
|
||||
dashboard: 'ダッシュボード',
|
||||
review: '復習',
|
||||
collection: 'コレクション',
|
||||
settings: '設定',
|
||||
sync: '同期',
|
||||
logout: 'ログアウト',
|
||||
menu: 'メニュー',
|
||||
},
|
||||
login: {
|
||||
instruction: 'WaniKani V2 APIキーを入力してください',
|
||||
placeholder: 'キーを貼り付け...',
|
||||
button: 'ログイン',
|
||||
failed: 'ログイン失敗。サーバーは起動していますか?',
|
||||
},
|
||||
alerts: {
|
||||
syncSuccess: '同期完了! コレクション: {count}',
|
||||
syncFailed: '同期に失敗しました。',
|
||||
logoutConfirm: 'ログアウトしてもよろしいですか?セッションが終了します。',
|
||||
},
|
||||
lesson: {
|
||||
phasePrimer: '学習',
|
||||
phaseDemo: '観察',
|
||||
phaseGuided: 'ガイド',
|
||||
phasePractice: '想起',
|
||||
understand: '理解した',
|
||||
ready: '描いてみる',
|
||||
startPractice: '練習開始',
|
||||
continue: '次へ',
|
||||
streak: '正解: {n} / {total}',
|
||||
hint: 'ヒント (連勝リセット)',
|
||||
hintAction: 'ヒント',
|
||||
watchAgain: 'もう一度見る',
|
||||
completeTitle: 'レッスン完了!',
|
||||
completeBody: '新しい漢字がレビューに追加されました。',
|
||||
learned: '{n}個の新しい漢字を覚えました。',
|
||||
components: '構成要素',
|
||||
observe: '書き順を見る',
|
||||
trace: 'なぞる',
|
||||
drawStep: '書く ({n}/{total})',
|
||||
backToDashboard: 'ダッシュボードに戻る',
|
||||
},
|
||||
hero: {
|
||||
lessons: 'レッスン',
|
||||
welcome: 'お帰りなさい',
|
||||
subtitle: '準備は完了です。',
|
||||
start: '復習開始',
|
||||
noReviews: 'レビューなし',
|
||||
nextIn: '次の復習まで',
|
||||
now: '今',
|
||||
prioritize: '低レベルを優先 ({count})',
|
||||
},
|
||||
stats: {
|
||||
mastery: '習得度 (Guru+)',
|
||||
srsDistribution: 'SRS分布',
|
||||
accuracy: '正解率',
|
||||
correct: '正解',
|
||||
total: '合計',
|
||||
next24: '今後24時間',
|
||||
availableNow: '今すぐ可能',
|
||||
inHours: '{n}時間後',
|
||||
noIncoming: '24時間以内のレビューはありません。',
|
||||
items: '個',
|
||||
reviewsCount: '{count} レビュー',
|
||||
|
||||
consistency: "学習の一貫性",
|
||||
less: "少",
|
||||
more: "多",
|
||||
consistency: '学習の一貫性',
|
||||
less: '少',
|
||||
more: '多',
|
||||
|
||||
streakTitle: "連続学習日数",
|
||||
days: "日",
|
||||
shieldActive: "Zenシールド有効: 1日休んでもストリークを守ります。",
|
||||
shieldCooldown: "再チャージ中: 残り{n}日",
|
||||
streakTitle: '連続学習日数',
|
||||
days: '日',
|
||||
shieldActive: 'Zenシールド有効: 1日休んでもストリークを守ります。',
|
||||
shieldCooldown: '再チャージ中: 残り{n}日',
|
||||
|
||||
ghostTitle: "苦手なアイテム",
|
||||
ghostSubtitle: "正解率が低い",
|
||||
noGhosts: "苦手なアイテムはありません!"
|
||||
},
|
||||
settings: {
|
||||
title: "設定",
|
||||
batchSize: "1回の復習数",
|
||||
items: "個",
|
||||
language: "言語 (Language)",
|
||||
save: "保存して閉じる"
|
||||
},
|
||||
review: {
|
||||
meaning: "意味",
|
||||
level: "レベル",
|
||||
draw: "正しく描いてください",
|
||||
hint: "ヒント表示",
|
||||
tryAgain: "もう一度",
|
||||
correct: "正解!",
|
||||
next: "次へ",
|
||||
sessionComplete: "セッション完了!",
|
||||
levelup: "漢字力がアップしました。",
|
||||
back: "コレクションに戻る",
|
||||
caughtUp: "完了しました!",
|
||||
noReviews: "現在レビューするものはありません。",
|
||||
viewCollection: "コレクションを見る",
|
||||
queue: "残り:",
|
||||
loading: "漢字を読み込み中...",
|
||||
},
|
||||
collection: {
|
||||
searchLabel: "漢字、意味、読みで検索...",
|
||||
placeholder: "例: '水', 'mizu'",
|
||||
loading: "読み込み中...",
|
||||
noMatches: "見つかりませんでした",
|
||||
tryDifferent: "別のキーワードで検索してください。",
|
||||
levelHeader: "レベル",
|
||||
onyomi: "音読み",
|
||||
kunyomi: "訓読み",
|
||||
nanori: "名乗り",
|
||||
close: "閉じる"
|
||||
}
|
||||
}
|
||||
}
|
||||
ghostTitle: '苦手なアイテム',
|
||||
ghostSubtitle: '正解率が低い',
|
||||
noGhosts: '苦手なアイテムはありません!',
|
||||
},
|
||||
settings: {
|
||||
title: '設定',
|
||||
batchSize: '1回の復習数',
|
||||
items: '個',
|
||||
language: '言語 (Language)',
|
||||
drawingTolerance: '描画許容範囲',
|
||||
strict: '厳しい',
|
||||
loose: '甘い',
|
||||
save: '保存して閉じる',
|
||||
},
|
||||
review: {
|
||||
meaning: '意味',
|
||||
level: 'レベル',
|
||||
draw: '正しく描いてください',
|
||||
hint: 'ヒント表示',
|
||||
showHint: 'ヒントを表示',
|
||||
redoLesson: 'レッスンをやり直す',
|
||||
tryAgain: 'もう一度',
|
||||
correct: '正解!',
|
||||
next: '次へ',
|
||||
sessionComplete: 'セッション完了!',
|
||||
levelup: '漢字力がアップしました。',
|
||||
back: 'コレクションに戻る',
|
||||
caughtUp: '完了しました!',
|
||||
noReviews: '現在レビューするものはありません。',
|
||||
viewCollection: 'コレクションを見る',
|
||||
queue: '残り:',
|
||||
loading: '漢字を読み込み中...',
|
||||
},
|
||||
collection: {
|
||||
searchLabel: '漢字、意味、読みで検索...',
|
||||
placeholder: "例: '水', 'mizu'",
|
||||
loading: '読み込み中...',
|
||||
noMatches: '見つかりませんでした',
|
||||
tryDifferent: '別のキーワードで検索してください。',
|
||||
levelHeader: 'レベル',
|
||||
onyomi: '音読み',
|
||||
kunyomi: '訓読み',
|
||||
nanori: '名乗り',
|
||||
close: '閉じる',
|
||||
startLesson: 'レッスン開始',
|
||||
redoLesson: 'レッスンをやり直す',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const savedLocale = localStorage.getItem('zen_locale') || 'en'
|
||||
const savedLocale = localStorage.getItem('zen_locale') || 'en';
|
||||
|
||||
const i18n = createI18n({
|
||||
legacy: false,
|
||||
locale: savedLocale,
|
||||
fallbackLocale: 'en',
|
||||
messages
|
||||
})
|
||||
legacy: false,
|
||||
locale: savedLocale,
|
||||
fallbackLocale: 'en',
|
||||
messages,
|
||||
});
|
||||
|
||||
export default i18n
|
||||
export default i18n;
|
||||
|
||||
Reference in New Issue
Block a user