Merge pull request #246 from glitch-soc/theme-intl8n
Internationalization for flavours and skinsmaster
commit
26c9b9fa27
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/ar.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/bg.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/ca.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/de.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,50 @@ |
||||
import inherited from 'mastodon/locales/en.json'; |
||||
|
||||
const messages = { |
||||
'getting_started.open_source_notice': 'Glitchsoc is free open source software forked from {Mastodon}. You can contribute or report issues on GitHub at {github}.', |
||||
'layout.auto': 'Auto', |
||||
'layout.current_is': 'Your current layout is:', |
||||
'layout.desktop': 'Desktop', |
||||
'layout.mobile': 'Mobile', |
||||
'navigation_bar.app_settings': 'App settings', |
||||
'getting_started.onboarding': 'Show me around', |
||||
'onboarding.page_one.federation': '{domain} is an \'instance\' of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.', |
||||
'onboarding.page_one.welcome': 'Welcome to {domain}!', |
||||
'onboarding.page_six.github': '{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.', |
||||
'settings.auto_collapse': 'Automatic collapsing', |
||||
'settings.auto_collapse_all': 'Everything', |
||||
'settings.auto_collapse_lengthy': 'Lengthy toots', |
||||
'settings.auto_collapse_media': 'Toots with media', |
||||
'settings.auto_collapse_notifications': 'Notifications', |
||||
'settings.auto_collapse_reblogs': 'Boosts', |
||||
'settings.auto_collapse_replies': 'Replies', |
||||
'settings.close': 'Close', |
||||
'settings.collapsed_statuses': 'Collapsed toots', |
||||
'settings.enable_collapsed': 'Enable collapsed toots', |
||||
'settings.general': 'General', |
||||
'settings.image_backgrounds': 'Image backgrounds', |
||||
'settings.image_backgrounds_media': 'Preview collapsed toot media', |
||||
'settings.image_backgrounds_users': 'Give collapsed toots an image background', |
||||
'settings.media': 'Media', |
||||
'settings.media_letterbox': 'Letterbox media', |
||||
'settings.media_fullwidth': 'Full-width media previews', |
||||
'settings.preferences': 'User preferences', |
||||
'settings.wide_view': 'Wide view (Desktop mode only)', |
||||
'settings.navbar_under': 'Navbar at the bottom (Mobile only)', |
||||
'status.collapse': 'Collapse', |
||||
'status.uncollapse': 'Uncollapse', |
||||
|
||||
'home.column_settings.show_direct': 'Show DMs', |
||||
|
||||
'notification.markForDeletion': 'Mark for deletion', |
||||
'notifications.clear': 'Clear all my notifications', |
||||
'notifications.marked_clear_confirmation': 'Are you sure you want to permanently clear all selected notifications?', |
||||
'notifications.marked_clear': 'Clear selected notifications', |
||||
|
||||
'notification_purge.btn_all': 'Select\nall', |
||||
'notification_purge.btn_none': 'Select\nnone', |
||||
'notification_purge.btn_invert': 'Invert\nselection', |
||||
'notification_purge.btn_apply': 'Clear\nselected', |
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/eo.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/es.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/fa.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/fi.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/fr.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/he.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/hr.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/hu.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/id.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/io.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/it.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,48 @@ |
||||
import inherited from 'mastodon/locales/ja.json'; |
||||
|
||||
const messages = { |
||||
'getting_started.open_source_notice': 'Glitchsocは{Mastodon}によるフリーなオープンソースソフトウェアです。誰でもGitHub({github})から開発に參加したり、問題を報告したりできます。', |
||||
'layout.auto': '自動', |
||||
'layout.current_is': 'あなたの現在のレイアウト:', |
||||
'layout.desktop': 'デスクトップ', |
||||
'layout.mobile': 'モバイル', |
||||
'navigation_bar.app_settings': 'アプリ設定', |
||||
'getting_started.onboarding': '解説', |
||||
'onboarding.page_one.federation': '{domain}はMastodonのインスタンスです。Mastodonとは、独立したサーバが連携して作るソーシャルネットワークです。これらのサーバーをインスタンスと呼びます。', |
||||
'onboarding.page_one.welcome': '{domain}へようこそ!', |
||||
'onboarding.page_six.github': '{domain}はGlitchsocを使用しています。Glitchsocは{Mastodon}のフレンドリーな{fork}で、どんなMastodonアプリやインスタンスとも互換性があります。Glitchsocは完全に無料で、オープンソースです。{github}でバグ報告や機能要望あるいは貢獻をすることが可能です。', |
||||
'settings.auto_collapse': '自動折りたたみ', |
||||
'settings.auto_collapse_all': 'すべて', |
||||
'settings.auto_collapse_lengthy': '長いトゥート', |
||||
'settings.auto_collapse_media': 'メディア付きトゥート', |
||||
'settings.auto_collapse_notifications': '通知', |
||||
'settings.auto_collapse_reblogs': 'ブースト', |
||||
'settings.auto_collapse_replies': '返信', |
||||
'settings.close': '閉じる', |
||||
'settings.collapsed_statuses': 'トゥート', |
||||
'settings.enable_collapsed': 'トゥート折りたたみを有効にする', |
||||
'settings.general': '一般', |
||||
'settings.image_backgrounds': '画像背景', |
||||
'settings.image_backgrounds_media': '折りたまれたメディア付きテゥートをプレビュー', |
||||
'settings.image_backgrounds_users': '折りたまれたトゥートの背景を変更する', |
||||
'settings.media': 'メディア', |
||||
'settings.media_letterbox': 'メディアをレターボックス式で表示', |
||||
'settings.media_fullwidth': '全幅メディアプリビュー', |
||||
'settings.preferences': 'ユーザー設定', |
||||
'settings.wide_view': 'ワイドビュー(デスクトップレイアウトのみ)', |
||||
'settings.navbar_under': 'ナビを画面下部に移動させる(モバイルレイアウトのみ)', |
||||
'status.collapse': '折りたたむ', |
||||
'status.uncollapse': '折りたたみを解除', |
||||
|
||||
'notification.markForDeletion': '選択', |
||||
'notifications.clear': '通知を全てクリアする', |
||||
'notifications.marked_clear_confirmation': '削除した全ての通知を完全に削除してもよろしいですか?', |
||||
'notifications.marked_clear': '選択した通知を削除する', |
||||
|
||||
'notification_purge.btn_all': 'すべて\n選択', |
||||
'notification_purge.btn_none': '選択\n解除', |
||||
'notification_purge.btn_invert': '選択を\n反転', |
||||
'notification_purge.btn_apply': '選択したものを\n削除', |
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/ko.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/nl.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/no.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/oc.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,48 @@ |
||||
import inherited from 'mastodon/locales/pl.json'; |
||||
|
||||
const messages = { |
||||
'getting_started.open_source_notice': 'Glitchsoc jest wolnym i otwartoźródłowym forkiem oprogramowania {Mastodon}. Możesz współtworzyć projekt lub zgłaszać błędy na GitHubie pod adresem {github}.', |
||||
'layout.auto': 'Automatyczny', |
||||
'layout.current_is': 'Twój obecny układ to:', |
||||
'layout.desktop': 'Desktopowy', |
||||
'layout.mobile': 'Mobilny', |
||||
'navigation_bar.app_settings': 'Ustawienia aplikacji', |
||||
'getting_started.onboarding': 'Rozejrzyj się', |
||||
'onboarding.page_one.federation': '{domain} jest \'instancją\' Mastodona. Mastodon to sieć działających niezależnie serwerów tworzących jedną sieć społecznościową. Te serwery nazywane są instancjami.', |
||||
'onboarding.page_one.welcome': 'Witamy na {domain}!', |
||||
'onboarding.page_six.github': '{domain} jest oparty na Glitchsoc. Glitchsoc jest {forkiem} {Mastodon}a kompatybilnym z każdym klientem i aplikacją Mastodona. Glitchsoc jest całkowicie wolnym i otwartoźródłowym oprogramowaniem. Możesz zgłaszać błędy i sugestie funkcji oraz współtworzyć projekt na {github}.', |
||||
'settings.auto_collapse': 'Automatyczne zwijanie', |
||||
'settings.auto_collapse_all': 'Wszystko', |
||||
'settings.auto_collapse_lengthy': 'Długie wpisy', |
||||
'settings.auto_collapse_media': 'Wpisy z zawartością multimedialną', |
||||
'settings.auto_collapse_notifications': 'Powiadomienia', |
||||
'settings.auto_collapse_reblogs': 'Podbicia', |
||||
'settings.auto_collapse_replies': 'Odpowiedzi', |
||||
'settings.close': 'Zamknij', |
||||
'settings.collapsed_statuses': 'Zwijanie wpisów', |
||||
'settings.enable_collapsed': 'Włącz zwijanie wpisów', |
||||
'settings.general': 'Ogólne', |
||||
'settings.image_backgrounds': 'Obrazy w tle', |
||||
'settings.image_backgrounds_media': 'Wyświetlaj zawartość multimedialną zwiniętych wpisów', |
||||
'settings.image_backgrounds_users': 'Nadaj tło zwiniętym wpisom', |
||||
'settings.media': 'Zawartość multimedialna', |
||||
'settings.media_letterbox': 'Letterbox media', |
||||
'settings.media_fullwidth': 'Podgląd zawartości multimedialnej o pełnej szerokości', |
||||
'settings.preferences': 'Preferencje użyytkownika', |
||||
'settings.wide_view': 'Szeroki widok (tylko w trybie desktopowym)', |
||||
'settings.navbar_under': 'Pasek nawigacji na dole (tylko w trybie mobilnym)', |
||||
'status.collapse': 'Zwiń', |
||||
'status.uncollapse': 'Rozwiń', |
||||
|
||||
'notification.markForDeletion': 'Oznacz do usunięcia', |
||||
'notifications.clear': 'Wyczyść wszystkie powiadomienia', |
||||
'notifications.marked_clear_confirmation': 'Czy na pewno chcesz bezpowrtonie usunąć wszystkie powiadomienia?', |
||||
'notifications.marked_clear': 'Usuń zaznaczone powiadomienia', |
||||
|
||||
'notification_purge.btn_all': 'Zaznacz\nwszystkie', |
||||
'notification_purge.btn_none': 'Odznacz\nwszystkie', |
||||
'notification_purge.btn_invert': 'Odwróć\nzaznaczenie', |
||||
'notification_purge.btn_apply': 'Usuń\nzaznaczone', |
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/pt-BR.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/pt.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/ru.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/sv.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/th.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/tr.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/uk.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/zh-CN.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/zh-HK.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,7 @@ |
||||
import inherited from 'mastodon/locales/zh-TW.json'; |
||||
|
||||
const messages = { |
||||
// No translations available.
|
||||
}; |
||||
|
||||
export default Object.assign({}, inherited, messages); |
@ -0,0 +1,6 @@ |
||||
en: |
||||
flavours: |
||||
glitch: Glitch Edition |
||||
skins: |
||||
glitch: |
||||
default: Default |
@ -0,0 +1,6 @@ |
||||
en: |
||||
flavours: |
||||
vanilla: Vanilla Mastodon |
||||
skins: |
||||
vanilla: |
||||
default: Default |
@ -1,46 +0,0 @@ |
||||
{ |
||||
"getting_started.open_source_notice": "Glitchsoc is free open source software forked from {Mastodon}. You can contribute or report issues on GitHub at {github}.", |
||||
"layout.auto": "Auto", |
||||
"layout.current_is": "Your current layout is:", |
||||
"layout.desktop": "Desktop", |
||||
"layout.mobile": "Mobile", |
||||
"navigation_bar.app_settings": "App settings", |
||||
"getting_started.onboarding": "Show me around", |
||||
"onboarding.page_one.federation": "{domain} is an 'instance' of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.", |
||||
"onboarding.page_one.welcome": "Welcome to {domain}!", |
||||
"onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", |
||||
"settings.auto_collapse": "Automatic collapsing", |
||||
"settings.auto_collapse_all": "Everything", |
||||
"settings.auto_collapse_lengthy": "Lengthy toots", |
||||
"settings.auto_collapse_media": "Toots with media", |
||||
"settings.auto_collapse_notifications": "Notifications", |
||||
"settings.auto_collapse_reblogs": "Boosts", |
||||
"settings.auto_collapse_replies": "Replies", |
||||
"settings.close": "Close", |
||||
"settings.collapsed_statuses": "Collapsed toots", |
||||
"settings.enable_collapsed": "Enable collapsed toots", |
||||
"settings.general": "General", |
||||
"settings.image_backgrounds": "Image backgrounds", |
||||
"settings.image_backgrounds_media": "Preview collapsed toot media", |
||||
"settings.image_backgrounds_users": "Give collapsed toots an image background", |
||||
"settings.media": "Media", |
||||
"settings.media_letterbox": "Letterbox media", |
||||
"settings.media_fullwidth": "Full-width media previews", |
||||
"settings.preferences": "User preferences", |
||||
"settings.wide_view": "Wide view (Desktop mode only)", |
||||
"settings.navbar_under": "Navbar at the bottom (Mobile only)", |
||||
"status.collapse": "Collapse", |
||||
"status.uncollapse": "Uncollapse", |
||||
|
||||
"home.column_settings.show_direct": "Show DMs", |
||||
|
||||
"notification.markForDeletion": "Mark for deletion", |
||||
"notifications.clear": "Clear all my notifications", |
||||
"notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?", |
||||
"notifications.marked_clear": "Clear selected notifications", |
||||
|
||||
"notification_purge.btn_all": "Select\nall", |
||||
"notification_purge.btn_none": "Select\nnone", |
||||
"notification_purge.btn_invert": "Invert\nselection", |
||||
"notification_purge.btn_apply": "Clear\nselected" |
||||
} |
@ -1,44 +0,0 @@ |
||||
{ |
||||
"getting_started.open_source_notice": "Glitchsocは{Mastodon}によるフリーなオープンソースソフトウェアです。誰でもGitHub({github})から開発に參加したり、問題を報告したりできます。", |
||||
"layout.auto": "自動", |
||||
"layout.current_is": "あなたの現在のレイアウト:", |
||||
"layout.desktop": "デスクトップ", |
||||
"layout.mobile": "モバイル", |
||||
"navigation_bar.app_settings": "アプリ設定", |
||||
"getting_started.onboarding": "解説", |
||||
"onboarding.page_one.federation": "{domain}はMastodonのインスタンスです。Mastodonとは、独立したサーバが連携して作るソーシャルネットワークです。これらのサーバーをインスタンスと呼びます。", |
||||
"onboarding.page_one.welcome": "{domain}へようこそ!", |
||||
"onboarding.page_six.github": "{domain}はGlitchsocを使用しています。Glitchsocは{Mastodon}のフレンドリーな{fork}で、どんなMastodonアプリやインスタンスとも互換性があります。Glitchsocは完全に無料で、オープンソースです。{github}でバグ報告や機能要望あるいは貢獻をすることが可能です。", |
||||
"settings.auto_collapse": "自動折りたたみ", |
||||
"settings.auto_collapse_all": "すべて", |
||||
"settings.auto_collapse_lengthy": "長いトゥート", |
||||
"settings.auto_collapse_media": "メディア付きトゥート", |
||||
"settings.auto_collapse_notifications": "通知", |
||||
"settings.auto_collapse_reblogs": "ブースト", |
||||
"settings.auto_collapse_replies": "返信", |
||||
"settings.close": "閉じる", |
||||
"settings.collapsed_statuses": "トゥート", |
||||
"settings.enable_collapsed": "トゥート折りたたみを有効にする", |
||||
"settings.general": "一般", |
||||
"settings.image_backgrounds": "画像背景", |
||||
"settings.image_backgrounds_media": "折りたまれたメディア付きテゥートをプレビュー", |
||||
"settings.image_backgrounds_users": "折りたまれたトゥートの背景を変更する", |
||||
"settings.media": "メディア", |
||||
"settings.media_letterbox": "メディアをレターボックス式で表示", |
||||
"settings.media_fullwidth": "全幅メディアプリビュー", |
||||
"settings.preferences": "ユーザー設定", |
||||
"settings.wide_view": "ワイドビュー(デスクトップレイアウトのみ)", |
||||
"settings.navbar_under": "ナビを画面下部に移動させる(モバイルレイアウトのみ)", |
||||
"status.collapse": "折りたたむ", |
||||
"status.uncollapse": "折りたたみを解除", |
||||
|
||||
"notification.markForDeletion": "選択", |
||||
"notifications.clear": "通知を全てクリアする", |
||||
"notifications.marked_clear_confirmation": "削除した全ての通知を完全に削除してもよろしいですか?", |
||||
"notifications.marked_clear": "選択した通知を削除する", |
||||
|
||||
"notification_purge.btn_all": "すべて\n選択", |
||||
"notification_purge.btn_none": "選択\n解除", |
||||
"notification_purge.btn_invert": "選択を\n反転", |
||||
"notification_purge.btn_apply": "選択したものを\n削除" |
||||
} |
@ -1,44 +0,0 @@ |
||||
{ |
||||
"getting_started.open_source_notice": "Glitchsoc jest wolnym i otwartoźródłowym forkiem oprogramowania {Mastodon}. Możesz współtworzyć projekt lub zgłaszać błędy na GitHubie pod adresem {github}.", |
||||
"layout.auto": "Automatyczny", |
||||
"layout.current_is": "Twój obecny układ to:", |
||||
"layout.desktop": "Desktopowy", |
||||
"layout.mobile": "Mobilny", |
||||
"navigation_bar.app_settings": "Ustawienia aplikacji", |
||||
"getting_started.onboarding": "Rozejrzyj się", |
||||
"onboarding.page_one.federation": "{domain} jest 'instancją' Mastodona. Mastodon to sieć działających niezależnie serwerów tworzących jedną sieć społecznościową. Te serwery nazywane są instancjami.", |
||||
"onboarding.page_one.welcome": "Witamy na {domain}!", |
||||
"onboarding.page_six.github": "{domain} jest oparty na Glitchsoc. Glitchsoc jest {forkiem} {Mastodon}a kompatybilnym z każdym klientem i aplikacją Mastodona. Glitchsoc jest całkowicie wolnym i otwartoźródłowym oprogramowaniem. Możesz zgłaszać błędy i sugestie funkcji oraz współtworzyć projekt na {github}.", |
||||
"settings.auto_collapse": "Automatyczne zwijanie", |
||||
"settings.auto_collapse_all": "Wszystko", |
||||
"settings.auto_collapse_lengthy": "Długie wpisy", |
||||
"settings.auto_collapse_media": "Wpisy z zawartością multimedialną", |
||||
"settings.auto_collapse_notifications": "Powiadomienia", |
||||
"settings.auto_collapse_reblogs": "Podbicia", |
||||
"settings.auto_collapse_replies": "Odpowiedzi", |
||||
"settings.close": "Zamknij", |
||||
"settings.collapsed_statuses": "Zwijanie wpisów", |
||||
"settings.enable_collapsed": "Włącz zwijanie wpisów", |
||||
"settings.general": "Ogólne", |
||||
"settings.image_backgrounds": "Obrazy w tle", |
||||
"settings.image_backgrounds_media": "Wyświetlaj zawartość multimedialną zwiniętych wpisów", |
||||
"settings.image_backgrounds_users": "Nadaj tło zwiniętym wpisom", |
||||
"settings.media": "Zawartość multimedialna", |
||||
"settings.media_letterbox": "Letterbox media", |
||||
"settings.media_fullwidth": "Podgląd zawartości multimedialnej o pełnej szerokości", |
||||
"settings.preferences": "Preferencje użyytkownika", |
||||
"settings.wide_view": "Szeroki widok (tylko w trybie desktopowym)", |
||||
"settings.navbar_under": "Pasek nawigacji na dole (tylko w trybie mobilnym)", |
||||
"status.collapse": "Zwiń", |
||||
"status.uncollapse": "Rozwiń", |
||||
|
||||
"notification.markForDeletion": "Oznacz do usunięcia", |
||||
"notifications.clear": "Wyczyść wszystkie powiadomienia", |
||||
"notifications.marked_clear_confirmation": "Czy na pewno chcesz bezpowrtonie usunąć wszystkie powiadomienia?", |
||||
"notifications.marked_clear": "Usuń zaznaczone powiadomienia", |
||||
|
||||
"notification_purge.btn_all": "Zaznacz\nwszystkie", |
||||
"notification_purge.btn_none": "Odznacz\nwszystkie", |
||||
"notification_purge.btn_invert": "Odwróć\nzaznaczenie", |
||||
"notification_purge.btn_apply": "Usuń\nzaznaczone" |
||||
} |
@ -0,0 +1,4 @@ |
||||
en: |
||||
skins: |
||||
vanilla: |
||||
win95: Masto95 |
@ -0,0 +1,6 @@ |
||||
# frozen_string_literal: true |
||||
|
||||
I18n.load_path += Dir[Rails.root.join('app', 'javascript', 'flavours', '*', 'names.{rb,yml}').to_s] |
||||
I18n.load_path += Dir[Rails.root.join('app', 'javascript', 'flavours', '*', 'names', '*.{rb,yml}').to_s] |
||||
I18n.load_path += Dir[Rails.root.join('app', 'javascript', 'skins', '*', '*', 'names.{rb,yml}').to_s] |
||||
I18n.load_path += Dir[Rails.root.join('app', 'javascript', 'skins', '*', '*', 'names', '*.{rb,yml}').to_s] |
@ -1,70 +1,66 @@ |
||||
// A message from upstream:
|
||||
// ========================
|
||||
// To avoid adding a lot of boilerplate, locale packs are
|
||||
// automatically generated here. These are written into the tmp/
|
||||
// directory and then used to generate locale_en.js, locale_fr.js, etc.
|
||||
|
||||
const fs = require('fs'); |
||||
const path = require('path'); |
||||
// Glitch note:
|
||||
// ============
|
||||
// This code has been entirely rewritten to support glitch flavours.
|
||||
// However, the underlying process is exactly the same.
|
||||
|
||||
const { existsSync, readdirSync, writeFileSync } = require('fs'); |
||||
const { join, resolve } = require('path'); |
||||
const rimraf = require('rimraf'); |
||||
const mkdirp = require('mkdirp'); |
||||
const { flavours } = require('./configuration.js'); |
||||
|
||||
const localesJsonPath = path.join(__dirname, '../../app/javascript/mastodon/locales'); |
||||
const locales = fs.readdirSync(localesJsonPath).filter(filename => { |
||||
return /\.json$/.test(filename) && |
||||
!/defaultMessages/.test(filename) && |
||||
!/whitelist/.test(filename); |
||||
}).map(filename => filename.replace(/\.json$/, '')); |
||||
|
||||
const outPath = path.join(__dirname, '../../tmp/packs'); |
||||
|
||||
rimraf.sync(outPath); |
||||
mkdirp.sync(outPath); |
||||
|
||||
const outPaths = []; |
||||
|
||||
locales.forEach(locale => { |
||||
const localePath = path.join(outPath, `locale_${locale}.js`); |
||||
const baseLocale = locale.split('-')[0]; // e.g. 'zh-TW' -> 'zh'
|
||||
const localeDataPath = [ |
||||
// first try react-intl
|
||||
`../../node_modules/react-intl/locale-data/${baseLocale}.js`, |
||||
// then check locales/locale-data
|
||||
`../../app/javascript/mastodon/locales/locale-data/${baseLocale}.js`, |
||||
// fall back to English (this is what react-intl does anyway)
|
||||
'../../node_modules/react-intl/locale-data/en.js', |
||||
].filter(filename => fs.existsSync(path.join(outPath, filename))) |
||||
.map(filename => filename.replace(/..\/..\/node_modules\//, ''))[0]; |
||||
|
||||
let glitchInject = ` |
||||
const mergedMessages = messages; |
||||
`;
|
||||
|
||||
const glitchPath = `../../app/javascript/glitch/locales/${locale}.json`; |
||||
if (fs.existsSync(path.join(outPath, glitchPath))) { |
||||
glitchInject = ` |
||||
import glitchMessages from ${JSON.stringify(glitchPath)}; |
||||
|
||||
let mergedMessages = messages; |
||||
Object.keys(glitchMessages).forEach(function (key) { |
||||
mergedMessages[key] = glitchMessages[key]; |
||||
}); |
||||
|
||||
`;
|
||||
module.exports = Object.keys(flavours).reduce(function (map, entry) { |
||||
const flavour = flavours[entry]; |
||||
if (!flavour.locales) { |
||||
return map; |
||||
} |
||||
const locales = readdirSync(flavour.locales).filter( |
||||
filename => /\.js(?:on)?$/.test(filename) && !/defaultMessages|whitelist|index/.test(filename) |
||||
); |
||||
const outPath = resolve('tmp', 'locales', entry); |
||||
|
||||
rimraf.sync(outPath); |
||||
mkdirp.sync(outPath); |
||||
|
||||
const localeContent = `//
|
||||
// locale_${locale}.js
|
||||
locales.forEach(function (locale) { |
||||
const localeName = locale.replace(/\.js(?:on)?$/, ''); |
||||
const localePath = join(outPath, `${localeName}.js`); |
||||
const baseLocale = localeName.split('-')[0]; // e.g. 'zh-TW' -> 'zh'
|
||||
const localeDataPath = [ |
||||
// first try react-intl
|
||||
`node_modules/react-intl/locale-data/${baseLocale}.js`, |
||||
// then check locales/locale-data
|
||||
`app/javascript/locales/locale-data/${baseLocale}.js`, |
||||
// fall back to English (this is what react-intl does anyway)
|
||||
'node_modules/react-intl/locale-data/en.js', |
||||
].filter( |
||||
filename => existsSync(filename) |
||||
).map( |
||||
filename => filename.replace(/(?:node_modules|app\/javascript)\//, '') |
||||
)[0]; |
||||
const localeContent = `//
|
||||
// locales/${entry}/${localeName}.js
|
||||
// automatically generated by generateLocalePacks.js
|
||||
//
|
||||
import messages from '../../app/javascript/mastodon/locales/${locale}.json'; |
||||
import localeData from ${JSON.stringify(localeDataPath)}; |
||||
import { setLocale } from 'locales'; |
||||
${glitchInject} |
||||
setLocale({messages: mergedMessages, localeData: localeData}); |
||||
`;
|
||||
fs.writeFileSync(localePath, localeContent, 'utf8'); |
||||
outPaths.push(localePath); |
||||
}); |
||||
|
||||
module.exports = outPaths; |
||||
import messages from '../../../${flavour.locales}/${locale.replace(/\.js$/, '')}'; |
||||
import localeData from '${localeDataPath}'; |
||||
import { setLocale } from 'locales'; |
||||
|
||||
setLocale({ |
||||
localeData, |
||||
messages, |
||||
}); |
||||
`;
|
||||
writeFileSync(localePath, localeContent, 'utf8'); |
||||
map[`locales/${entry}/${localeName}`] = localePath; |
||||
}); |
||||
|
||||
return map; |
||||
}, {}); |
||||
|
Loading…
Reference in new issue