Merge branch 'master' into l10n_master
This commit is contained in:
		
						commit
						77faf7a84c
					
				
					 417 changed files with 5956 additions and 17208 deletions
				
			
		| 
						 | 
				
			
			@ -889,6 +889,7 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		|||
  saved: "Profile updated"
 | 
			
		||||
  uploading: "Uploading"
 | 
			
		||||
  upload-failed: "Failed to upload"
 | 
			
		||||
  
 | 
			
		||||
mobile/views/pages/search.vue:
 | 
			
		||||
  search: "Search"
 | 
			
		||||
  empty: "No posts were found for '{}'"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,7 +40,7 @@ common:
 | 
			
		|||
    hmm: "Hmm ... ?"
 | 
			
		||||
    surprise: "Wow"
 | 
			
		||||
    congrats: "Félicitations !"
 | 
			
		||||
    angry: "En colère"
 | 
			
		||||
    angry: "Faché"
 | 
			
		||||
    confused: "Confus"
 | 
			
		||||
    pudding: "Pudding"
 | 
			
		||||
  note-placeholders:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										27
									
								
								locales/index.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								locales/index.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
/**
 | 
			
		||||
 * Languages Loader
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
const fs = require('fs');
 | 
			
		||||
const yaml = require('js-yaml');
 | 
			
		||||
 | 
			
		||||
const loadLang = lang => yaml.safeLoad(
 | 
			
		||||
	fs.readFileSync(`${__dirname}/${lang}.yml`, 'utf-8'));
 | 
			
		||||
 | 
			
		||||
const native = loadLang('ja');
 | 
			
		||||
 | 
			
		||||
const langs = {
 | 
			
		||||
	'de': loadLang('de'),
 | 
			
		||||
	'en': loadLang('en'),
 | 
			
		||||
	'fr': loadLang('fr'),
 | 
			
		||||
	'ja': native,
 | 
			
		||||
	'pl': loadLang('pl'),
 | 
			
		||||
	'es': loadLang('es')
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
Object.values(langs).forEach(locale => {
 | 
			
		||||
	// Extend native language (Japanese)
 | 
			
		||||
	locale = Object.assign({}, native, locale);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
module.exports = langs;
 | 
			
		||||
| 
						 | 
				
			
			@ -1,34 +0,0 @@
 | 
			
		|||
/**
 | 
			
		||||
 * Languages Loader
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
import * as fs from 'fs';
 | 
			
		||||
import * as yaml from 'js-yaml';
 | 
			
		||||
 | 
			
		||||
export type LangKey = 'de' | 'en' | 'fr' | 'ja' | 'pl' | 'es';
 | 
			
		||||
export type LocaleObject = { [key: string]: any };
 | 
			
		||||
 | 
			
		||||
const loadLang = (lang: LangKey) => yaml.safeLoad(
 | 
			
		||||
	fs.readFileSync(`./locales/${lang}.yml`, 'utf-8')) as LocaleObject;
 | 
			
		||||
 | 
			
		||||
const native = loadLang('ja');
 | 
			
		||||
 | 
			
		||||
const langs: { [key: string]: LocaleObject } = {
 | 
			
		||||
	'de': loadLang('de'),
 | 
			
		||||
	'en': loadLang('en'),
 | 
			
		||||
	'fr': loadLang('fr'),
 | 
			
		||||
	'ja': native,
 | 
			
		||||
	'pl': loadLang('pl'),
 | 
			
		||||
	'es': loadLang('es')
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
Object.entries(langs).map(([, locale]) => {
 | 
			
		||||
	// Extend native language (Japanese)
 | 
			
		||||
	locale = Object.assign({}, native, locale);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
export function isAvailableLanguage(lang: string): lang is LangKey {
 | 
			
		||||
	return lang in langs;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default langs;
 | 
			
		||||
| 
						 | 
				
			
			@ -6,6 +6,14 @@ common:
 | 
			
		|||
  misskey: "A ⭐ of fediverse"
 | 
			
		||||
  about-title: "A ⭐ of fediverse."
 | 
			
		||||
  about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
 | 
			
		||||
  
 | 
			
		||||
  customization-tips:
 | 
			
		||||
    title: "カスタマイズのヒント"
 | 
			
		||||
    paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
 | 
			
		||||
    paragraph2: "一部のウィジェットは、<strong><strong>右</strong>クリック</strong>することで表示を変更することができます。"
 | 
			
		||||
    paragraph3: "ウィジェットを削除するには、ヘッダーの<strong>「ゴミ箱」</strong>と書かれたエリアにウィジェットをドラッグ&ドロップします。"
 | 
			
		||||
    paragraph4: "カスタマイズを終了するには、右上の「完了」をクリックします。"
 | 
			
		||||
    gotit: "Got it!"
 | 
			
		||||
 | 
			
		||||
  time:
 | 
			
		||||
    unknown: "なぞのじかん"
 | 
			
		||||
| 
						 | 
				
			
			@ -19,6 +27,8 @@ common:
 | 
			
		|||
    months_ago: "{}ヶ月前"
 | 
			
		||||
    years_ago: "{}年前"
 | 
			
		||||
 | 
			
		||||
  trash: "ゴミ箱"
 | 
			
		||||
 | 
			
		||||
  weekday-short:
 | 
			
		||||
    sunday: "日"
 | 
			
		||||
    monday: "月"
 | 
			
		||||
| 
						 | 
				
			
			@ -56,6 +66,7 @@ common:
 | 
			
		|||
  my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
 | 
			
		||||
  i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
 | 
			
		||||
  show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
 | 
			
		||||
  verified-user: "認証済みのユーザー"
 | 
			
		||||
 | 
			
		||||
  reversi:
 | 
			
		||||
    drawn: "引き分け"
 | 
			
		||||
| 
						 | 
				
			
			@ -63,6 +74,7 @@ common:
 | 
			
		|||
    opponent-turn: "相手のターンです"
 | 
			
		||||
    turn-of: "{}のターンです"
 | 
			
		||||
    past-turn-of: "{}のターン"
 | 
			
		||||
    won: "{}の勝ち"
 | 
			
		||||
 | 
			
		||||
  widgets:
 | 
			
		||||
    analog-clock: "アナログ時計"
 | 
			
		||||
| 
						 | 
				
			
			@ -93,6 +105,7 @@ common:
 | 
			
		|||
    widgets: "ウィジェット"
 | 
			
		||||
    home: "ホーム"
 | 
			
		||||
    local: "ローカル"
 | 
			
		||||
    hybrid: "ソーシャル"
 | 
			
		||||
    global: "グローバル"
 | 
			
		||||
    notifications: "通知"
 | 
			
		||||
    list: "リスト"
 | 
			
		||||
| 
						 | 
				
			
			@ -279,6 +292,11 @@ common/views/widgets/memo.vue:
 | 
			
		|||
  title: "付箋"
 | 
			
		||||
  memo: "ここに書いて!"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  
 | 
			
		||||
common/views/widgets/slideshow.vue:
 | 
			
		||||
  folder-customize-mode: "フォルダを指定するには、カスタマイズモードを終了してください"
 | 
			
		||||
  folder: "クリックしてフォルダを指定してください"
 | 
			
		||||
  no-image: "このフォルダには画像がありません"
 | 
			
		||||
 | 
			
		||||
common/views/pages/follow.vue:
 | 
			
		||||
  signed-in-as: "{}としてサインイン中"
 | 
			
		||||
| 
						 | 
				
			
			@ -329,6 +347,8 @@ desktop/views/components/drive.file.vue:
 | 
			
		|||
  banner: "バナー"
 | 
			
		||||
  contextmenu:
 | 
			
		||||
    rename: "名前を変更"
 | 
			
		||||
    mark-as-sensitive: "閲覧注意に設定"
 | 
			
		||||
    unmark-as-sensitive: "閲覧注意を解除"
 | 
			
		||||
    copy-url: "URLをコピー"
 | 
			
		||||
    download: "ダウンロード"
 | 
			
		||||
    else-files: "その他..."
 | 
			
		||||
| 
						 | 
				
			
			@ -376,6 +396,14 @@ desktop/views/components/drive.vue:
 | 
			
		|||
    upload: "ファイルをアップロード"
 | 
			
		||||
    url-upload: "URLからアップロード"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/media-image.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/media-video.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
| 
						 | 
				
			
			@ -440,12 +468,16 @@ desktop/views/components/notes.note.vue:
 | 
			
		|||
desktop/views/components/notes.vue:
 | 
			
		||||
  error: "読み込みに失敗しました。"
 | 
			
		||||
  retry: "リトライ"
 | 
			
		||||
  load-more: "もっと読み込む"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/notifications.vue:
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
  empty: "ありません!"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/post-form.vue:
 | 
			
		||||
  add-visible-user: "+ユーザーを追加"
 | 
			
		||||
  attach-location-information: "位置情報を添付する"
 | 
			
		||||
  hide-contents: "内容を隠す"
 | 
			
		||||
  reply-placeholder: "この投稿への返信..."
 | 
			
		||||
  quote-placeholder: "この投稿を引用..."
 | 
			
		||||
  submit: "投稿"
 | 
			
		||||
| 
						 | 
				
			
			@ -464,7 +496,13 @@ desktop/views/components/post-form.vue:
 | 
			
		|||
  insert-a-kao: "v('ω')v"
 | 
			
		||||
  create-poll: "アンケートを作成"
 | 
			
		||||
  text-remain: "残り{}文字"
 | 
			
		||||
 | 
			
		||||
  recent-tags: "最近"
 | 
			
		||||
  click-to-tagging: "クリックでタグ付け"
 | 
			
		||||
  visibility: "公開範囲"
 | 
			
		||||
  geolocation-alert: "お使いの端末は位置情報に対応していません"
 | 
			
		||||
  error: "エラー"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  
 | 
			
		||||
desktop/views/components/post-form-window.vue:
 | 
			
		||||
  note: "新規投稿"
 | 
			
		||||
  reply: "返信"
 | 
			
		||||
| 
						 | 
				
			
			@ -512,6 +550,8 @@ desktop/views/components/settings.vue:
 | 
			
		|||
 | 
			
		||||
  display: "デザインと表示"
 | 
			
		||||
  customize: "ホームをカスタマイズ"
 | 
			
		||||
  choose-wallpaper: "壁紙を選択"
 | 
			
		||||
  delete-wallpaper: "壁紙を削除"
 | 
			
		||||
  dark-mode: "ダークモード"
 | 
			
		||||
  circle-icons: "円形のアイコンを使用"
 | 
			
		||||
  gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
 | 
			
		||||
| 
						 | 
				
			
			@ -621,8 +661,12 @@ desktop/views/components/settings.profile.vue:
 | 
			
		|||
  description: "自己紹介"
 | 
			
		||||
  birthday: "誕生日"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  locked-account: "アカウントの保護"
 | 
			
		||||
  is-locked: "投稿を非公開にする"
 | 
			
		||||
  other: "その他"
 | 
			
		||||
  is-bot: "このアカウントはBotです"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  profile-updated: "プロフィールを更新しました"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/sub-note-content.vue:
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
| 
						 | 
				
			
			@ -636,6 +680,7 @@ desktop/views/components/taskmanager.vue:
 | 
			
		|||
desktop/views/components/timeline.vue:
 | 
			
		||||
  home: "ホーム"
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
  list: "リスト"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -648,7 +693,7 @@ desktop/views/components/ui.header.account.vue:
 | 
			
		|||
  favorites: "お気に入り"
 | 
			
		||||
  lists: "リスト"
 | 
			
		||||
  follow-requests: "フォロー申請"
 | 
			
		||||
  customize: "カスタマイズ"
 | 
			
		||||
  customize: "ホームのカスタマイズ"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  signout: "サインアウト"
 | 
			
		||||
  dark: "闇に飲まれる"
 | 
			
		||||
| 
						 | 
				
			
			@ -698,6 +743,7 @@ desktop/views/components/window.vue:
 | 
			
		|||
desktop/views/pages/deck/deck.tl-column.vue:
 | 
			
		||||
  is-media-only: "メディア投稿のみ"
 | 
			
		||||
  is-media-view: "メディアビュー"
 | 
			
		||||
  edit: "オプション"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/deck/deck.note.vue:
 | 
			
		||||
  reposted-by: "{}がRenote"
 | 
			
		||||
| 
						 | 
				
			
			@ -844,6 +890,14 @@ mobile/views/components/drive.file-detail.vue:
 | 
			
		|||
  hash: "ハッシュ (md5)"
 | 
			
		||||
  exif: "EXIF"
 | 
			
		||||
 | 
			
		||||
mobile/views/components/media-image.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
 | 
			
		||||
mobile/views/components/media-video.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
 | 
			
		||||
mobile/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
| 
						 | 
				
			
			@ -958,6 +1012,7 @@ mobile/views/pages/following.vue:
 | 
			
		|||
mobile/views/pages/home.vue:
 | 
			
		||||
  home: "ホーム"
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
 | 
			
		||||
mobile/views/pages/messaging.vue:
 | 
			
		||||
| 
						 | 
				
			
			@ -1088,11 +1143,17 @@ docs:
 | 
			
		|||
      properties: "プロパティ"
 | 
			
		||||
    endpoints:
 | 
			
		||||
      params: "パラメータ"
 | 
			
		||||
      no-params: "パラメータはありません"
 | 
			
		||||
      res: "レスポンス"
 | 
			
		||||
      require-credential: "このエンドポイントは認証情報が必須です。"
 | 
			
		||||
      require-permission: "このエンドポイントは{permission}の権限を必要とします。"
 | 
			
		||||
      has-limit: "レートリミットがあります。"
 | 
			
		||||
      duration-limit: "直近{duration}ミリ秒の間のこのエンドポイントへのリクエスト数の合計が{max}を超える場合はリクエストできません。"
 | 
			
		||||
      min-interval-limit: "前回のリクエストから{interval}ミリ秒経っていない場合はリクエストできません。"
 | 
			
		||||
      show-src: "このエンドポイントのソースコードも閲覧できます。"
 | 
			
		||||
      show-src-link: "コードをGitHubで見る"
 | 
			
		||||
      generated: "このドキュメントはAPI定義に基づき自動生成されています。"
 | 
			
		||||
    props:
 | 
			
		||||
      name: "名前"
 | 
			
		||||
      type: "型"
 | 
			
		||||
      optional: "オプション"
 | 
			
		||||
      description: "説明"
 | 
			
		||||
      yes: "はい"
 | 
			
		||||
      no: "いいえ"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue