diff --git a/theme/src/node/locales/de.ts b/theme/src/node/locales/de.ts new file mode 100644 index 00000000..49d10a65 --- /dev/null +++ b/theme/src/node/locales/de.ts @@ -0,0 +1,125 @@ +/** 德语 */ +import type { DocSearchLocaleOptions } from '@vuepress/plugin-docsearch' +import type { SearchLocaleOptions } from '@vuepress-plume/plugin-search' +import type { PlumeThemeLocaleData, PresetLocale } from '../../shared/index.js' + +export const deLocale: PlumeThemeLocaleData = { + selectLanguageName: 'Deutsch', + selectLanguageText: 'Sprache auswählen', + + appearanceText: 'Erscheinungsbild', + lightModeSwitchTitle: 'Zu hellem Thema wechseln', + darkModeSwitchTitle: 'Zu dunklem Thema wechseln', + + outlineLabel: 'Inhalt dieser Seite', + returnToTopLabel: 'Zurück nach oben', + editLinkText: 'Diese Seite bearbeiten', + contributorsText: 'Mitwirkende', + prevPageLabel: 'Vorherige Seite', + nextPageLabel: 'Nächste Seite', + lastUpdatedText: 'Zuletzt aktualisiert am', + + changelogText: 'Änderungsprotokoll', + changelogOnText: 'am', + changelogButtonText: 'Alle Änderungen anzeigen', + + copyrightText: 'Alle Rechte vorbehalten', + copyrightAuthorText: 'Urheberrecht liegt bei:', + copyrightCreationOriginalText: 'Originalartikel:', + copyrightCreationTranslateText: 'Übersetzt aus:', + copyrightCreationReprintText: 'Nachdruck von:', + copyrightLicenseText: 'Lizenz:', + + notFound: { + code: '404', + title: 'Seite nicht gefunden', + quote: 'Aber wenn du deine Richtung nicht änderst und weiter suchst, könntest du schließlich dorthin gelangen, wohin du gehen willst.', + linkText: 'Zur Startseite', + }, + + encryptButtonText: 'Bestätigen', + encryptPlaceholder: 'Bitte Passwort eingeben', + encryptGlobalText: 'Diese Website ist nur mit Passwort zugänglich', + encryptPageText: 'Diese Seite ist nur mit Passwort zugänglich', + + footer: { + message: + 'Unterstützt von VuePress & vuepress-theme-plume', + }, +} + +export const dePresetLocale: PresetLocale = { + 'home': 'Startseite', + 'blog': 'Blog', + 'tag': 'Tag', + 'archive': 'Archiv', + 'category': 'Kategorie', + 'archiveTotal': '{count} Beiträge', + + // ------ copyright license ------ + 'CC0': 'CC0 1.0 Universell', + 'CC-BY-4.0': 'Namensnennung 4.0 International', + 'CC-BY-NC-4.0': 'Namensnennung-Nicht kommerziell 4.0 International', + 'CC-BY-NC-SA-4.0': 'Namensnennung-Nicht kommerziell-Weitergabe unter gleichen Bedingungen 4.0 International', + 'CC-BY-NC-ND-4.0': 'Namensnennung-Nicht kommerziell-Keine Bearbeitung 4.0 International', + 'CC-BY-ND-4.0': 'Namensnennung-Keine Bearbeitung 4.0 International', + 'CC-BY-SA-4.0': 'Namensnennung-Weitergabe unter gleichen Bedingungen 4.0 International', +} + +export const deDocsearchLocale: DocSearchLocaleOptions = { + placeholder: 'Dokumente durchsuchen', + translations: { + button: { + buttonText: 'Dokumente durchsuchen', + buttonAriaLabel: 'Dokumente durchsuchen', + }, + modal: { + searchBox: { + resetButtonTitle: 'Suchkriterien löschen', + resetButtonAriaLabel: 'Suchkriterien löschen', + cancelButtonText: 'Abbrechen', + cancelButtonAriaLabel: 'Abbrechen', + }, + startScreen: { + recentSearchesTitle: 'Letzte Suchen', + noRecentSearchesText: 'Keine letzten Suchen', + saveRecentSearchButtonTitle: 'Zu letzten Suchen hinzufügen', + removeRecentSearchButtonTitle: 'Aus letzten Suchen entfernen', + favoriteSearchesTitle: 'Favoriten', + removeFavoriteSearchButtonTitle: 'Aus Favoriten entfernen', + }, + errorScreen: { + titleText: 'Ergebnisse konnten nicht abgerufen werden', + helpText: 'Möglicherweise müssen Sie Ihre Internetverbindung überprüfen.', + }, + footer: { + selectText: 'Auswählen', + navigateText: 'Wechseln', + closeText: 'Schließen', + searchByText: 'Bereitgestellt von', + }, + noResultsScreen: { + noResultsText: 'Keine relevanten Ergebnisse gefunden', + suggestedQueryText: 'Sie können versuchen, nach', + reportMissingResultsText: 'Sie glauben, dass diese Suche Ergebnisse liefern sollte?', + reportMissingResultsLinkText: 'Klicken Sie hier, um Feedback zu geben', + }, + }, + }, +} + +export const deSearchLocale: Partial = { + placeholder: 'Dokumente durchsuchen', + resetButtonTitle: 'Suche zurücksetzen', + backButtonTitle: 'Schließen', + noResultsText: 'Keine Suchergebnisse:', + footer: { + selectText: 'Auswählen', + selectKeyAriaLabel: 'Eingabe', + navigateText: 'Wechseln', + navigateUpKeyAriaLabel: 'Nach oben', + navigateDownKeyAriaLabel: 'Nach unten', + closeText: 'Schließen', + closeKeyAriaLabel: 'Beenden', + }, +} diff --git a/theme/src/node/locales/fr.ts b/theme/src/node/locales/fr.ts new file mode 100644 index 00000000..14835eb5 --- /dev/null +++ b/theme/src/node/locales/fr.ts @@ -0,0 +1,125 @@ +/** 法语 */ +import type { DocSearchLocaleOptions } from '@vuepress/plugin-docsearch' +import type { SearchLocaleOptions } from '@vuepress-plume/plugin-search' +import type { PlumeThemeLocaleData, PresetLocale } from '../../shared/index.js' + +export const frLocale: PlumeThemeLocaleData = { + selectLanguageName: 'Français', + selectLanguageText: 'Choisir la langue', + + appearanceText: 'Apparence', + lightModeSwitchTitle: 'Passer au thème clair', + darkModeSwitchTitle: 'Passer au thème sombre', + + outlineLabel: 'Contenu de cette page', + returnToTopLabel: 'Retour en haut', + editLinkText: 'Modifier cette page', + contributorsText: 'Contributeurs', + prevPageLabel: 'Page précédente', + nextPageLabel: 'Page suivante', + lastUpdatedText: 'Dernière mise à jour', + + changelogText: 'Historique des changements', + changelogOnText: 'le', + changelogButtonText: 'Voir tout l\'historique des changements', + + copyrightText: 'Tous droits réservés', + copyrightAuthorText: 'Copyright appartenant à :', + copyrightCreationOriginalText: 'Lien de l\'article :', + copyrightCreationTranslateText: 'Traduit de :', + copyrightCreationReprintText: 'Reproduit de :', + copyrightLicenseText: 'Licence :', + + notFound: { + code: '404', + title: 'Page non trouvée', + quote: 'Mais si tu ne changes pas de direction et que tu continues à chercher, tu finiras par arriver à destination.', + linkText: 'Retour à l\'accueil', + }, + + encryptButtonText: 'Confirmer', + encryptPlaceholder: 'Veuillez entrer le mot de passe', + encryptGlobalText: 'Ce site n\'est accessible qu\'avec un mot de passe', + encryptPageText: 'Cette page n\'est accessible qu\'avec un mot de passe', + + footer: { + message: + 'Propulsé par VuePress & vuepress-theme-plume', + }, +} + +export const frPresetLocale: PresetLocale = { + 'home': 'Accueil', + 'blog': 'Blog', + 'tag': 'Étiquette', + 'archive': 'Archives', + 'category': 'Catégorie', + 'archiveTotal': '{count} articles', + + // ------ copyright license ------ + 'CC0': 'CC0 1.0 Universel', + 'CC-BY-4.0': 'Attribution 4.0 International', + 'CC-BY-NC-4.0': 'Attribution-Pas d\'Utilisation Commerciale 4.0 International', + 'CC-BY-NC-SA-4.0': 'Attribution-Pas d\'Utilisation Commerciale-Partage dans les Mêmes Conditions 4.0 International', + 'CC-BY-NC-ND-4.0': 'Attribution-Pas d\'Utilisation Commerciale-Pas de Modification 4.0 International', + 'CC-BY-ND-4.0': 'Attribution-Pas de Modification 4.0 International', + 'CC-BY-SA-4.0': 'Attribution-Partage dans les Mêmes Conditions 4.0 International', +} + +export const frDocsearchLocale: DocSearchLocaleOptions = { + placeholder: 'Rechercher dans la documentation', + translations: { + button: { + buttonText: 'Rechercher dans la documentation', + buttonAriaLabel: 'Rechercher dans la documentation', + }, + modal: { + searchBox: { + resetButtonTitle: 'Effacer les critères de recherche', + resetButtonAriaLabel: 'Effacer les critères de recherche', + cancelButtonText: 'Annuler', + cancelButtonAriaLabel: 'Annuler', + }, + startScreen: { + recentSearchesTitle: 'Recherches récentes', + noRecentSearchesText: 'Aucune recherche récente', + saveRecentSearchButtonTitle: 'Enregistrer dans les recherches récentes', + removeRecentSearchButtonTitle: 'Supprimer des recherches récentes', + favoriteSearchesTitle: 'Favoris', + removeFavoriteSearchButtonTitle: 'Supprimer des favoris', + }, + errorScreen: { + titleText: 'Impossible d\'obtenir les résultats', + helpText: 'Vous devriez vérifier votre connexion Internet', + }, + footer: { + selectText: 'sélectionner', + navigateText: 'naviguer', + closeText: 'fermer', + searchByText: 'Recherche par', + }, + noResultsScreen: { + noResultsText: 'Aucun résultat trouvé', + suggestedQueryText: 'Vous pouvez essayer de rechercher', + reportMissingResultsText: 'Pensez-vous que cette recherche devrait avoir des résultats ?', + reportMissingResultsLinkText: 'Cliquez pour signaler', + }, + }, + }, +} + +export const frSearchLocale: Partial = { + placeholder: 'Rechercher dans la documentation', + resetButtonTitle: 'Réinitialiser la recherche', + backButtonTitle: 'Fermer', + noResultsText: 'Aucun résultat trouvé :', + footer: { + selectText: 'sélectionner', + selectKeyAriaLabel: 'Entrée', + navigateText: 'naviguer', + navigateUpKeyAriaLabel: 'haut', + navigateDownKeyAriaLabel: 'bas', + closeText: 'fermer', + closeKeyAriaLabel: 'sortie', + }, +} diff --git a/theme/src/node/locales/index.ts b/theme/src/node/locales/index.ts index 8ab2cfa3..084341d6 100644 --- a/theme/src/node/locales/index.ts +++ b/theme/src/node/locales/index.ts @@ -1,24 +1,54 @@ +/** + * 多语言预设 + * 除 /zh/ 、 /en/ 外,其它语言预设通过 AI 生成,不保证准确 + * 如有错误,欢迎提 issue + */ import type { DocSearchLocaleOptions } from '@vuepress/plugin-docsearch' import type { SearchLocaleOptions } from '@vuepress-plume/plugin-search' import type { PlumeThemeLocaleData, PresetLocale } from '../../shared/index.js' +import { deDocsearchLocale, deLocale, dePresetLocale, deSearchLocale } from './de.js' import { enLocale, enPresetLocale, enSearchLocale } from './en.js' +import { frDocsearchLocale, frLocale, frPresetLocale, frSearchLocale } from './fr.js' +import { jaDocsearchLocale, jaLocale, jaPresetLocale, jaSearchLocale } from './ja.js' +import { ruDocsearchLocale, ruLocale, ruPresetLocale, ruSearchLocale } from './ru.js' import { zhDocsearchLocale, zhLocale, zhPresetLocale, zhSearchLocale } from './zh.js' +import { zhTwDocsearchLocale, zhTwLocale, zhTwPresetLocale, zhTwSearchLocale } from './zh-tw.js' export const LOCALE_OPTIONS: Record = { '/zh/': zhLocale, '/en/': enLocale, + '/zh-tw/': zhTwLocale, + '/de/': deLocale, + '/fr/': frLocale, + '/ru/': ruLocale, + '/ja/': jaLocale, } export const PRESET_LOCALES: Record = { '/zh/': zhPresetLocale, '/en/': enPresetLocale, + '/zh-tw/': zhTwPresetLocale, + '/de/': dePresetLocale, + '/fr/': frPresetLocale, + '/ru/': ruPresetLocale, + '/ja/': jaPresetLocale, } export const DOCSEARCH_LOCALES: Record = { '/zh/': zhDocsearchLocale, + '/zh-tw/': zhTwDocsearchLocale, + '/de/': deDocsearchLocale, + '/fr/': frDocsearchLocale, + '/ru/': ruDocsearchLocale, + '/ja/': jaDocsearchLocale, } export const SEARCH_LOCALES: Record> = { '/zh/': zhSearchLocale, '/en/': enSearchLocale, + '/zh-tw/': zhTwSearchLocale, + '/de/': deSearchLocale, + '/fr/': frSearchLocale, + '/ru/': ruSearchLocale, + '/ja/': jaSearchLocale, } diff --git a/theme/src/node/locales/ja.ts b/theme/src/node/locales/ja.ts new file mode 100644 index 00000000..d74b4d82 --- /dev/null +++ b/theme/src/node/locales/ja.ts @@ -0,0 +1,125 @@ +/** 日语 */ +import type { DocSearchLocaleOptions } from '@vuepress/plugin-docsearch' +import type { SearchLocaleOptions } from '@vuepress-plume/plugin-search' +import type { PlumeThemeLocaleData, PresetLocale } from '../../shared/index.js' + +export const jaLocale: PlumeThemeLocaleData = { + selectLanguageName: '日本語', + selectLanguageText: '言語を選択', + + appearanceText: '外観', + lightModeSwitchTitle: 'ライトモードに切り替え', + darkModeSwitchTitle: 'ダークモードに切り替え', + + outlineLabel: 'このページの内容', + returnToTopLabel: 'トップに戻る', + editLinkText: 'このページを編集', + contributorsText: '貢献者', + prevPageLabel: '前のページ', + nextPageLabel: '次のページ', + lastUpdatedText: '最終更新日', + + changelogText: '変更履歴', + changelogOnText: 'に', + changelogButtonText: 'すべての変更履歴を見る', + + copyrightText: '著作権', + copyrightAuthorText: '著作権者:', + copyrightCreationOriginalText: '本文リンク:', + copyrightCreationTranslateText: '本文の翻訳元:', + copyrightCreationReprintText: '本文の転載元:', + copyrightLicenseText: 'ライセンス:', + + notFound: { + code: '404', + title: 'ページが見つかりません', + quote: 'しかし、方向を変えずに探し続ければ、最終的には行きたい場所にたどり着くかもしれません。', + linkText: 'ホームに戻る', + }, + + encryptButtonText: '確認', + encryptPlaceholder: 'パスワードを入力してください', + encryptGlobalText: 'このサイトはパスワードでのみアクセス可能です', + encryptPageText: 'このページはパスワードでのみアクセス可能です', + + footer: { + message: + 'VuePress & vuepress-theme-plume によって提供されています', + }, +} + +export const jaPresetLocale: PresetLocale = { + 'home': 'ホーム', + 'blog': 'ブログ', + 'tag': 'タグ', + 'archive': 'アーカイブ', + 'category': 'カテゴリー', + 'archiveTotal': '{count} 件', + + // ------ copyright license ------ + 'CC0': 'CC0 1.0 パブリックドメイン', + 'CC-BY-4.0': '表示 4.0 国際', + 'CC-BY-NC-4.0': '表示-非営利 4.0 国際', + 'CC-BY-NC-SA-4.0': '表示-非営利-継承 4.0 国際', + 'CC-BY-NC-ND-4.0': '表示-非営利-改変禁止 4.0 国際', + 'CC-BY-ND-4.0': '表示-改変禁止 4.0 国際', + 'CC-BY-SA-4.0': '表示-継承 4.0 国際', +} + +export const jaDocsearchLocale: DocSearchLocaleOptions = { + placeholder: 'ドキュメントを検索', + translations: { + button: { + buttonText: 'ドキュメントを検索', + buttonAriaLabel: 'ドキュメントを検索', + }, + modal: { + searchBox: { + resetButtonTitle: 'クエリをクリア', + resetButtonAriaLabel: 'クエリをクリア', + cancelButtonText: 'キャンセル', + cancelButtonAriaLabel: 'キャンセル', + }, + startScreen: { + recentSearchesTitle: '最近の検索', + noRecentSearchesText: '最近の検索はありません', + saveRecentSearchButtonTitle: '最近の検索に保存', + removeRecentSearchButtonTitle: '最近の検索から削除', + favoriteSearchesTitle: 'お気に入り', + removeFavoriteSearchButtonTitle: 'お気に入りから削除', + }, + errorScreen: { + titleText: '結果を取得できません', + helpText: 'ネットワーク接続を確認する必要があるかもしれません', + }, + footer: { + selectText: '選択', + navigateText: '切り替え', + closeText: '閉じる', + searchByText: '検索提供者', + }, + noResultsScreen: { + noResultsText: '関連する結果が見つかりません', + suggestedQueryText: 'クエリを試すことができます', + reportMissingResultsText: 'このクエリに結果があると思いますか?', + reportMissingResultsLinkText: 'フィードバックを送信', + }, + }, + }, +} + +export const jaSearchLocale: Partial = { + placeholder: 'ドキュメントを検索', + resetButtonTitle: '検索をリセット', + backButtonTitle: '閉じる', + noResultsText: '検索結果がありません:', + footer: { + selectText: '選択', + selectKeyAriaLabel: '入力', + navigateText: '切り替え', + navigateUpKeyAriaLabel: '上へ', + navigateDownKeyAriaLabel: '下へ', + closeText: '閉じる', + closeKeyAriaLabel: '終了', + }, +} diff --git a/theme/src/node/locales/ru.ts b/theme/src/node/locales/ru.ts new file mode 100644 index 00000000..04d956b7 --- /dev/null +++ b/theme/src/node/locales/ru.ts @@ -0,0 +1,125 @@ +/** 俄语 */ +import type { DocSearchLocaleOptions } from '@vuepress/plugin-docsearch' +import type { SearchLocaleOptions } from '@vuepress-plume/plugin-search' +import type { PlumeThemeLocaleData, PresetLocale } from '../../shared/index.js' + +export const ruLocale: PlumeThemeLocaleData = { + selectLanguageName: 'Русский', + selectLanguageText: 'Выберите язык', + + appearanceText: 'Внешний вид', + lightModeSwitchTitle: 'Переключить на светлую тему', + darkModeSwitchTitle: 'Переключить на темную тему', + + outlineLabel: 'Содержание страницы', + returnToTopLabel: 'Вернуться наверх', + editLinkText: 'Редактировать страницу', + contributorsText: 'Авторы', + prevPageLabel: 'Предыдущая страница', + nextPageLabel: 'Следующая страница', + lastUpdatedText: 'Последнее обновление', + + changelogText: 'История изменений', + changelogOnText: 'от', + changelogButtonText: 'Посмотреть все изменения', + + copyrightText: 'Все права защищены', + copyrightAuthorText: 'Авторские права принадлежат:', + copyrightCreationOriginalText: 'Ссылка на статью:', + copyrightCreationTranslateText: 'Перевод статьи:', + copyrightCreationReprintText: 'Перепечатано из:', + copyrightLicenseText: 'Лицензия:', + + notFound: { + code: '404', + title: 'Страница не найдена', + quote: 'Но если вы не меняете курс и продолжаете искать, в конечном итоге вы можете добраться до места назначения.', + linkText: 'Вернуться на главную', + }, + + encryptButtonText: 'Подтвердить', + encryptPlaceholder: 'Введите пароль', + encryptGlobalText: 'Доступ к сайту только по паролю', + encryptPageText: 'Доступ к странице только по паролю', + + footer: { + message: + 'Работает на VuePress & vuepress-theme-plume', + }, +} + +export const ruPresetLocale: PresetLocale = { + 'home': 'Главная', + 'blog': 'Блог', + 'tag': 'Теги', + 'archive': 'Архив', + 'category': 'Категории', + 'archiveTotal': '{count} статей', + + // ------ copyright license ------ + 'CC0': 'CC0 1.0 Универсальная', + 'CC-BY-4.0': 'Атрибуция 4.0 Международный', + 'CC-BY-NC-4.0': 'Атрибуция-Некоммерческое 4.0 Международный', + 'CC-BY-NC-SA-4.0': 'Атрибуция-Некоммерческое-С сохранением условий 4.0 Международный', + 'CC-BY-NC-ND-4.0': 'Атрибуция-Некоммерческое-Без производных 4.0 Международный', + 'CC-BY-ND-4.0': 'Атрибуция-Без производных 4.0 Международный', + 'CC-BY-SA-4.0': 'Атрибуция-С сохранением условий 4.0 Международный', +} + +export const ruDocsearchLocale: DocSearchLocaleOptions = { + placeholder: 'Поиск по документации', + translations: { + button: { + buttonText: 'Поиск по документации', + buttonAriaLabel: 'Поиск по документации', + }, + modal: { + searchBox: { + resetButtonTitle: 'Очистить условия поиска', + resetButtonAriaLabel: 'Очистить условия поиска', + cancelButtonText: 'Отмена', + cancelButtonAriaLabel: 'Отмена', + }, + startScreen: { + recentSearchesTitle: 'История поиска', + noRecentSearchesText: 'Нет истории поиска', + saveRecentSearchButtonTitle: 'Сохранить в историю поиска', + removeRecentSearchButtonTitle: 'Удалить из истории поиска', + favoriteSearchesTitle: 'Избранное', + removeFavoriteSearchButtonTitle: 'Удалить из избранного', + }, + errorScreen: { + titleText: 'Не удалось получить результаты', + helpText: 'Возможно, вам нужно проверить подключение к интернету', + }, + footer: { + selectText: 'Выбрать', + navigateText: 'Переключить', + closeText: 'Закрыть', + searchByText: 'Поиск предоставлен', + }, + noResultsScreen: { + noResultsText: 'Не найдено соответствующих результатов', + suggestedQueryText: 'Вы можете попробовать запрос', + reportMissingResultsText: 'Считаете, что этот запрос должен вернуть результаты?', + reportMissingResultsLinkText: 'Нажмите, чтобы сообщить', + }, + }, + }, +} + +export const ruSearchLocale: Partial = { + placeholder: 'Поиск по документации', + resetButtonTitle: 'Сбросить поиск', + backButtonTitle: 'Закрыть', + noResultsText: 'Нет результатов поиска:', + footer: { + selectText: 'Выбрать', + selectKeyAriaLabel: 'Ввод', + navigateText: 'Переключить', + navigateUpKeyAriaLabel: 'Вверх', + navigateDownKeyAriaLabel: 'Вниз', + closeText: 'Закрыть', + closeKeyAriaLabel: 'Выход', + }, +} diff --git a/theme/src/node/locales/zh-tw.ts b/theme/src/node/locales/zh-tw.ts new file mode 100644 index 00000000..d61915b6 --- /dev/null +++ b/theme/src/node/locales/zh-tw.ts @@ -0,0 +1,125 @@ +/** 繁体中文 */ +import type { DocSearchLocaleOptions } from '@vuepress/plugin-docsearch' +import type { SearchLocaleOptions } from '@vuepress-plume/plugin-search' +import type { PlumeThemeLocaleData, PresetLocale } from '../../shared/index.js' + +export const zhTwLocale: PlumeThemeLocaleData = { + selectLanguageName: '繁體中文', + selectLanguageText: '選擇語言', + + appearanceText: '外觀', + lightModeSwitchTitle: '切換為淺色主題', + darkModeSwitchTitle: '切換為深色主題', + + outlineLabel: '此頁內容', + returnToTopLabel: '返回頂部', + editLinkText: '編輯此頁', + contributorsText: '貢獻者', + prevPageLabel: '上一頁', + nextPageLabel: '下一頁', + lastUpdatedText: '最後更新於', + + changelogText: '變更歷史', + changelogOnText: '於', + changelogButtonText: '查看全部變更歷史', + + copyrightText: '版權所有', + copyrightAuthorText: '版權歸屬於:', + copyrightCreationOriginalText: '本文連結:', + copyrightCreationTranslateText: '本文翻譯自:', + copyrightCreationReprintText: '本文轉載自:', + copyrightLicenseText: '許可證:', + + notFound: { + code: '404', + title: '頁面未找到', + quote: '但是,如果你不改變方向,並且一直尋找,最終可能會到達你要去的地方。', + linkText: '返回首頁', + }, + + encryptButtonText: '確認', + encryptPlaceholder: '請輸入密碼', + encryptGlobalText: '本站只允許密碼訪問', + encryptPageText: '本頁面只允許密碼訪問', + + footer: { + message: + 'Powered by VuePress & vuepress-theme-plume', + }, +} + +export const zhTwPresetLocale: PresetLocale = { + 'home': '首頁', + 'blog': '博客', + 'tag': '標籤', + 'archive': '歸檔', + 'category': '分類', + 'archiveTotal': '{count} 篇', + + // ------ copyright license ------ + 'CC0': 'CC0 1.0 通用', + 'CC-BY-4.0': '署名 4.0 國際', + 'CC-BY-NC-4.0': '署名-非商業性 4.0 國際', + 'CC-BY-NC-SA-4.0': '署名-非商業性-相同方式共享 4.0 國際', + 'CC-BY-NC-ND-4.0': '署名-非商業性-禁止演繹 4.0 國際', + 'CC-BY-ND-4.0': '署名-禁止演繹 4.0 國際', + 'CC-BY-SA-4.0': '署名-相同方式共享 4.0 國際', +} + +export const zhTwDocsearchLocale: DocSearchLocaleOptions = { + placeholder: '搜索文檔', + translations: { + button: { + buttonText: '搜索文檔', + buttonAriaLabel: '搜索文檔', + }, + modal: { + searchBox: { + resetButtonTitle: '清除查詢條件', + resetButtonAriaLabel: '清除查詢條件', + cancelButtonText: '取消', + cancelButtonAriaLabel: '取消', + }, + startScreen: { + recentSearchesTitle: '搜索歷史', + noRecentSearchesText: '沒有搜索歷史', + saveRecentSearchButtonTitle: '保存至搜索歷史', + removeRecentSearchButtonTitle: '從搜索歷史中移除', + favoriteSearchesTitle: '收藏', + removeFavoriteSearchButtonTitle: '從收藏中移除', + }, + errorScreen: { + titleText: '無法獲取結果', + helpText: '你可能需要檢查你的網絡連接', + }, + footer: { + selectText: '選擇', + navigateText: '切換', + closeText: '關閉', + searchByText: '搜索提供者', + }, + noResultsScreen: { + noResultsText: '無法找到相關結果', + suggestedQueryText: '你可以嘗試查詢', + reportMissingResultsText: '你認為該查詢應該有結果?', + reportMissingResultsLinkText: '點擊反饋', + }, + }, + }, +} + +export const zhTwSearchLocale: Partial = { + placeholder: '搜索文檔', + resetButtonTitle: '重置搜索', + backButtonTitle: '關閉', + noResultsText: '無搜索結果:', + footer: { + selectText: '選擇', + selectKeyAriaLabel: '輸入', + navigateText: '切換', + navigateUpKeyAriaLabel: '向上', + navigateDownKeyAriaLabel: '向下', + closeText: '關閉', + closeKeyAriaLabel: '退出', + }, +}