* Added Chinese Traditional Hong Kong (zh-HK) for Ruby * Added translations for Ruby. * Added Chinese Traditional Hong Kong (zh-HK) for JS * Added translations for javascript code. * Rearrange language references in mastodon.jsx * Break `addLocaleData` into multiple lines. Make future commit more readable. * Roughly re-sort the languages in alphabetical orders (only manually put English on top because it is default). * Sort application.rb locale with alphabetical order With exception that English (default language) goes first. Improve code readability. * Resort language selection box alphabetically Sort HUMAN_LOCALES in the alphabetical order of display name (except English, the default language, come first). Improve usability.master
@@ -41,15 +41,17 @@ import Report from '../features/report'; | |||||
import { IntlProvider, addLocaleData } from 'react-intl'; | import { IntlProvider, addLocaleData } from 'react-intl'; | ||||
import en from 'react-intl/locale-data/en'; | import en from 'react-intl/locale-data/en'; | ||||
import de from 'react-intl/locale-data/de'; | import de from 'react-intl/locale-data/de'; | ||||
import eo from 'react-intl/locale-data/eo'; | |||||
import es from 'react-intl/locale-data/es'; | import es from 'react-intl/locale-data/es'; | ||||
import fi from 'react-intl/locale-data/fi'; | |||||
import fr from 'react-intl/locale-data/fr'; | import fr from 'react-intl/locale-data/fr'; | ||||
import pt from 'react-intl/locale-data/pt'; | |||||
import hu from 'react-intl/locale-data/hu'; | import hu from 'react-intl/locale-data/hu'; | ||||
import uk from 'react-intl/locale-data/uk'; | |||||
import fi from 'react-intl/locale-data/fi'; | |||||
import eo from 'react-intl/locale-data/eo'; | |||||
import ru from 'react-intl/locale-data/ru'; | |||||
import ja from 'react-intl/locale-data/ja'; | import ja from 'react-intl/locale-data/ja'; | ||||
import pt from 'react-intl/locale-data/pt'; | |||||
import ru from 'react-intl/locale-data/ru'; | |||||
import uk from 'react-intl/locale-data/uk'; | |||||
import zh from 'react-intl/locale-data/zh'; | |||||
import { localeData as zh_hk } from '../locales/zh-hk'; | |||||
import getMessagesForLocale from '../locales'; | import getMessagesForLocale from '../locales'; | ||||
import { hydrateStore } from '../actions/store'; | import { hydrateStore } from '../actions/store'; | ||||
@@ -64,7 +66,21 @@ const browserHistory = useRouterHistory(createBrowserHistory)({ | |||||
}); | }); | ||||
addLocaleData([...en, ...de, ...es, ...fr, ...pt, ...hu, ...uk, ...fi, ...eo, ...ru, ...ja]); | |||||
addLocaleData([ | |||||
...en, | |||||
...de, | |||||
...eo, | |||||
...es, | |||||
...fi, | |||||
...fr, | |||||
...hu, | |||||
...ja, | |||||
...pt, | |||||
...ru, | |||||
...uk, | |||||
...zh, | |||||
...zh_hk, | |||||
]); | |||||
const Mastodon = React.createClass({ | const Mastodon = React.createClass({ | ||||
@@ -9,6 +9,7 @@ import fi from './fi'; | |||||
import eo from './eo'; | import eo from './eo'; | ||||
import ru from './ru'; | import ru from './ru'; | ||||
import ja from './ja'; | import ja from './ja'; | ||||
import zh_hk from './zh-hk'; | |||||
const locales = { | const locales = { | ||||
@@ -22,8 +23,8 @@ const locales = { | |||||
fi, | fi, | ||||
eo, | eo, | ||||
ru, | ru, | ||||
ja | |||||
ja, | |||||
'zh-HK': zh_hk, | |||||
}; | }; | ||||
export default function getMessagesForLocale (locale) { | export default function getMessagesForLocale (locale) { | ||||
@@ -0,0 +1,113 @@ | |||||
import zh from 'react-intl/locale-data/zh'; | |||||
const localeData = zh.reduce(function (acc, localeData) { | |||||
if (localeData.locale === "zh-Hant-HK") { | |||||
// rename the locale "zh-Hant-HK" as "zh-HK" | |||||
// (match the code usually used in Accepted-Language header) | |||||
acc.push(Object.assign({}, | |||||
localeData, | |||||
{ | |||||
"locale": "zh-HK", | |||||
"parentLocale": "zh-Hant-HK", | |||||
} | |||||
)); | |||||
} | |||||
return acc; | |||||
}, []); | |||||
export { localeData as localeData }; | |||||
const zh_hk = { | |||||
"account.block": "封鎖 @{name}", | |||||
"account.edit_profile": "修改個人資料", | |||||
"account.follow": "關注", | |||||
"account.followers": "關注的人", | |||||
"account.follows_you": "關注你", | |||||
"account.follows": "正在關注", | |||||
"account.mention": "提及 @{name}", | |||||
"account.posts": "文章", | |||||
"account.requested": "等候審批", | |||||
"account.unblock": "解除對 @{name} 的封鎖", | |||||
"account.unfollow": "取消關注", | |||||
"column_back_button.label": "先前顯示", | |||||
"column.community": "本站時間軸", | |||||
"column.home": "家", | |||||
"column.notifications": "通知", | |||||
"column.public": "跨站公共時間軸", | |||||
"compose_form.placeholder": "你在想甚麼?", | |||||
"compose_form.privacy_disclaimer": "你的私人文章,將被遞送至你所提及的 {domains} 用戶。你是否信任 {domainsCount, plural, one {這個網站} other {這些網站}}?請留意,文章私隱設定只適用於各 Mastodon 服務站,如果 {domains} {domainsCount, plural, one {不是 Mastodon 服務站} other {之中有些不是 Mastodon 服務站}},對方將無法收到這篇文章的私隱設定,然後可能被轉推給不能預知的用戶閱讀。", | |||||
"compose_form.private": "標示為「只有關注你的人能看」", | |||||
"compose_form.publish": "發文", | |||||
"compose_form.sensitive": "將媒體檔案標示為「敏感內容」", | |||||
"compose_form.spoiler": "將部份文字藏於警告訊息之後", | |||||
"compose_form.unlisted": "請勿在公共時間軸顯示", | |||||
"empty_column.community": "本站時間軸暫時未有內容,快貼文來搶頭香啊!", | |||||
"empty_column.hashtag": "這個標籤暫時未有內容。", | |||||
"empty_column.home": "你還沒有關注任何用戶。快看看{public},向其他用戶搭訕吧。", | |||||
"empty_column.home.public_timeline": "公共時間軸", | |||||
"empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.", | |||||
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up.", | |||||
"getting_started.about_addressing": "只要你知道一位用戶的用戶名稱和域名,你可以用「@用戶名稱@域名」的格式在搜尋欄尋找該用戶。", | |||||
"getting_started.about_shortcuts": "只要該用戶是在你現在的服務站開立,你可以直接輸入用戶𠱷搜尋。同樣的規則適用於在文章提及別的用戶。", | |||||
"getting_started.apps": "手機或桌面應用程式", | |||||
"getting_started.heading": "開始使用", | |||||
"getting_started.open_source_notice": "Mastodon 是一個開放源碼的軟件。你可以在官方 GitHub ({github}) 貢獻或者回報問題。你亦可透過{apps}閱讀 Mastodon 上的消息。", | |||||
"home.column_settings.basic": "基本", | |||||
"home.column_settings.show_reblogs": "顯示被轉推的文章", | |||||
"home.column_settings.show_replies": "顯示回應文章", | |||||
"home.column_settings.advanced": "進階", | |||||
"lightbox.close": "關閉", | |||||
"loading_indicator.label": "載入中...", | |||||
"missing_indicator.label": "找不到內容", | |||||
"navigation_bar.community_timeline": "本站時間軸", | |||||
"navigation_bar.edit_profile": "修改個人資料", | |||||
"navigation_bar.logout": "登出", | |||||
"navigation_bar.preferences": "個人設定", | |||||
"navigation_bar.public_timeline": "跨站公共時間軸", | |||||
"notification.favourite": "{name} 喜歡你的文章", | |||||
"notification.follow": "{name} 開始開始你", | |||||
"notification.mention": "{name} 提及你", | |||||
"notification.reblog": "{name} 轉推你的文章", | |||||
"notifications.column_settings.alert": "顯示桌面通知", | |||||
"notifications.column_settings.favourite": "喜歡你的文章:", | |||||
"notifications.column_settings.follow": "關注你:", | |||||
"notifications.column_settings.mention": "提及你:", | |||||
"notifications.column_settings.reblog": "轉推你的文章:", | |||||
"notifications.column_settings.show": "在通知欄顯示", | |||||
"notifications.column_settings.sound": "播放音效", | |||||
"reply_indicator.cancel": "取消", | |||||
"report.target": "Reporting", | |||||
"search.account": "用戶", | |||||
"search.hashtag": "標籤", | |||||
"search.placeholder": "搜尋", | |||||
"search_results.total": "{count} 項結果", | |||||
"search.status_by": "按用戶名稱搜尋文章", | |||||
"status.delete": "刪除", | |||||
"status.favourite": "喜歡", | |||||
"status.load_more": "載入更多", | |||||
"status.media_hidden": "隱藏媒體內容", | |||||
"status.mention": "提及 @{name}", | |||||
"status.open": "展開文章", | |||||
"status.reblog": "轉推", | |||||
"status.reblogged_by": "{name} 轉推", | |||||
"status.reply": "回應", | |||||
"status.report": "舉報 @{name}", | |||||
"status.sensitive_toggle": "點擊顯示", | |||||
"status.sensitive_warning": "敏感內容", | |||||
"status.show_less": "減少顯示", | |||||
"status.show_more": "顯示更多", | |||||
"tabs_bar.compose": "撰寫", | |||||
"tabs_bar.home": "家", | |||||
"tabs_bar.local_timeline": "本站", | |||||
"tabs_bar.mentions": "提及", | |||||
"tabs_bar.notifications": "通知", | |||||
"tabs_bar.public": "跨站公共時間軸", | |||||
"tabs_bar.federated_timeline": "跨站", | |||||
"upload_area.title": "將檔案拖放至此上載", | |||||
"upload_button.label": "上載媒體檔案", | |||||
"upload_progress.label": "上載中……", | |||||
"upload_form.undo": "還原", | |||||
"video_player.toggle_sound": "開關音效", | |||||
}; | |||||
export default zh_hk; |
@@ -6,15 +6,15 @@ module SettingsHelper | |||||
de: 'Deutsch', | de: 'Deutsch', | ||||
es: 'Español', | es: 'Español', | ||||
eo: 'Esperanto', | eo: 'Esperanto', | ||||
pt: 'Português', | |||||
fr: 'Français', | fr: 'Français', | ||||
hu: 'Magyar', | hu: 'Magyar', | ||||
uk: 'Українська', | |||||
'zh-CN': '简体中文', | |||||
pt: 'Português', | |||||
fi: 'Suomi', | fi: 'Suomi', | ||||
ru: 'Русский', | ru: 'Русский', | ||||
uk: 'Українська', | |||||
ja: '日本語', | ja: '日本語', | ||||
'zh-CN': '简体中文', | |||||
'zh-HK': '繁體中文(香港)', | |||||
}.freeze | }.freeze | ||||
def human_locale(locale) | def human_locale(locale) | ||||
@@ -25,7 +25,21 @@ module Mastodon | |||||
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. | # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. | ||||
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] | # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] | ||||
config.i18n.available_locales = [:en, :de, :es, :pt, :fr, :hu, :uk, 'zh-CN', :fi, :eo, :ru, :ja] | |||||
config.i18n.available_locales = [ | |||||
:en, | |||||
:de, | |||||
:eo, | |||||
:es, | |||||
:fi, | |||||
:fr, | |||||
:hu, | |||||
:ja, | |||||
:pt, | |||||
:ru, | |||||
:uk, | |||||
'zh-CN', | |||||
:'zh-HK', | |||||
] | |||||
config.i18n.default_locale = :en | config.i18n.default_locale = :en | ||||
@@ -0,0 +1,61 @@ | |||||
--- | |||||
zh-HK: | |||||
devise: | |||||
confirmations: | |||||
confirmed: 你的電郵地址確認成功 | |||||
send_instructions: 你將會在幾分鐘內收到確認指示電郵,上面有確認你電郵地址的指示。 | |||||
send_paranoid_instructions: 如果你的電郵地址已經存在於我們的資料庫,你將會在幾分鐘內收到電郵,確認你電郵地址的指示。 | |||||
failure: | |||||
already_authenticated: 你之前已經登入了。 | |||||
inactive: 你的用戶並未啟用。 | |||||
invalid: 不正確的 %{authentication_keys} 或密碼。 | |||||
last_attempt: 若你再一次嘗試失敗,我們將鎖定你的用戶,以察安全。 | |||||
locked: 你的用戶已被鎖定 | |||||
not_found_in_database: 不正確的 %{authentication_keys} 或密碼。 | |||||
timeout: 你的登入階段已經過期,請重新登入以繼續使用。 | |||||
unauthenticated: 你必須先登入或登記,以繼續使用。 | |||||
unconfirmed: 你必須先確認電郵地址,繼續使用。 | |||||
mailer: | |||||
confirmation_instructions: | |||||
subject: 'Mastodon: 確認電郵地址' | |||||
password_change: | |||||
subject: 'Mastodon: 更改密碼' | |||||
reset_password_instructions: | |||||
subject: 'Mastodon: 重設密碼' | |||||
unlock_instructions: | |||||
subject: 'Mastodon: 解除用戶鎖定' | |||||
omniauth_callbacks: | |||||
failure: 無法以 %{kind} 登入你的用戶,原因是︰「%{reason}」。 | |||||
success: 成功以 %{kind} 登入你的用戶。 | |||||
passwords: | |||||
no_token: 你必須使用重設密碼電郵內的網址進入本頁。如果你確是使用電郵內的網址,請確認你用了完整的網址。 | |||||
send_instructions: 你將在幾分鐘內收到重設密碼的電郵指示。 | |||||
send_paranoid_instructions: 如果你的電郵地址已經存在於我們的資料庫,你將會在幾分鐘內收到重設密碼的電郵指示。 | |||||
updated: 你的密碼已經更新,你現在正登入本站。 | |||||
updated_not_active: 你的密碼已經更新。 | |||||
registrations: | |||||
destroyed: 再見了!你的用戶已被取消,希望我們相有相見的機會吧。 | |||||
signed_up: 歡迎你!你的登記已經成功。 | |||||
signed_up_but_inactive: 你的登記已經成功,可是由於你的用戶還被被啟用,暫時還不能讓你登入。 | |||||
signed_up_but_locked: 你的登記已經成功,可是由於你的用戶已被鎖定,我們無法讓你登入。 | |||||
signed_up_but_unconfirmed: 一條確認連結已經電郵到你的郵址。請使用讓連結啟用你的用戶。 | |||||
update_needs_confirmation: 你的用戶已經更新,但我們需要確認你的電郵地址。請打開你的郵箱,使用確認電郵的連結來確認的地郵址。 | |||||
updated: 你的用戶已經成功更新。 | |||||
sessions: | |||||
already_signed_out: 成功登出。 | |||||
signed_in: 成功登入。 | |||||
signed_out: 成功登出。 | |||||
unlocks: | |||||
send_instructions: 你將在幾分鐘內收到解除用戶鎖定的電郵指示。 | |||||
send_paranoid_instructions: 如果你的電郵地址已經存在於我們的資料庫,你將在幾分鐘內收到解除用戶鎖定的電郵指示。 | |||||
unlocked: 你的用戶已經解鎖,請登入以繼續。 | |||||
errors: | |||||
messages: | |||||
already_confirmed: 先前已經確認,請嘗試登入 | |||||
confirmation_period_expired: 需要在 %{period} 之內確認。請重新申請 | |||||
expired: 已經過期,請重新申請 | |||||
not_found: 找不到 | |||||
not_locked: 並未被鎖定 | |||||
not_saved: | |||||
one: '1 個錯誤令 %{resource} 被法被儲存︰' | |||||
other: "%{count} 個錯誤令 %{resource} 被法被儲存︰" |
@@ -0,0 +1,113 @@ | |||||
--- | |||||
zh-HK: | |||||
activerecord: | |||||
attributes: | |||||
doorkeeper/application: | |||||
name: 名稱 | |||||
redirect_uri: 轉接 URI | |||||
errors: | |||||
models: | |||||
doorkeeper/application: | |||||
attributes: | |||||
redirect_uri: | |||||
fragment_present: 'URI 不可包含 "#fragment" 部份' | |||||
invalid_uri: 必需有正確的 URI. | |||||
relative_uri: 必需為絕對 URI. | |||||
secured_uri: 必需使用有 HTTPS/SSL 加密的 URI. | |||||
doorkeeper: | |||||
applications: | |||||
buttons: | |||||
authorize: 認證 | |||||
cancel: 取消 | |||||
destroy: 移除 | |||||
edit: 編輯 | |||||
submit: 提交 | |||||
confirmations: | |||||
destroy: 是否確定? | |||||
edit: | |||||
title: 編輯應用程式 | |||||
form: | |||||
error: 噢!請檢查你表格的錯誤訊息 | |||||
help: | |||||
native_redirect_uri: 使用 %{native_redirect_uri} 作局部測試 | |||||
redirect_uri: 每行輸入一個 URI | |||||
scopes: 請用半形空格分開權限範圍 (scope)。留空表示使用預設的權限範圍 | |||||
index: | |||||
callback_url: 回傳網址 | |||||
name: 名稱 | |||||
new: 新增應用程式 | |||||
title: 你的應用程式 | |||||
new: | |||||
title: 新增應用程式 | |||||
show: | |||||
actions: 操作 | |||||
application_id: 應用程式 ID | |||||
callback_urls: 回傳網址 | |||||
scopes: 權限範圍 | |||||
secret: 密碼 | |||||
title: '應用程式︰ %{name}' | |||||
authorizations: | |||||
buttons: | |||||
authorize: 批准 | |||||
deny: 拒絕 | |||||
error: | |||||
title: 發生錯誤 | |||||
new: | |||||
able_to: 要求獲取權限 | |||||
prompt: 應用程式 %{client_name} 要求得到你用戶的部份權限 | |||||
title: 需要用戶授權 | |||||
show: | |||||
title: 授權代碼 | |||||
authorized_applications: | |||||
buttons: | |||||
revoke: 取消授權 | |||||
confirmations: | |||||
revoke: 是否確定要取消授權? | |||||
index: | |||||
application: 應用程式 | |||||
created_at: 授權於 | |||||
date_format: "%Y-%m-%d %H:%M:%S" | |||||
scopes: 權限範圍 | |||||
title: 已獲你授權的程用程式 | |||||
errors: | |||||
messages: | |||||
access_denied: 資源擁有者或授權伺服器不接受請求。 | |||||
credential_flow_not_configured: 資源擁有者密碼認證程序 (Resource Owner Password Credentials flow) 失敗,原因是 Doorkeeper.configure.resource_owner_from_credentials 沒有設定。 | |||||
invalid_client: 用戶程式認證 (Client authentication) 失敗,原因是用戶程式未有登記、沒有指定用戶程式 (client)、或者使用了不支援的認證方法 (method)。 | |||||
invalid_grant: 授權申請 (authorization grant) 不正確、過期、已被取消,或者無法對應授權請求 (authorization request) 內的轉接 URI,或者屬於別的用戶程式。 | |||||
invalid_redirect_uri: 不正確的轉接網址。 | |||||
invalid_request: 請求缺少了必要的參數、包含了不支援的參數、或者其他輸入錯誤。 | |||||
invalid_resource_owner: 資源擁有者的登入資訊錯誤、或者無法找到該資源擁有者。 | |||||
invalid_scope: 請求的權限範圍 (scope) 不正確、未有定義、或者輸入錯誤。 | |||||
invalid_token: | |||||
expired: access token 已經過期 | |||||
revoked: access token 已被取消 | |||||
unknown: access token 不正確 | |||||
resource_owner_authenticator_not_configured: 無法找到資源擁有者,原因是 Doorkeeper.configure.resource_owner_authenticator 沒有設定。 | |||||
server_error: 認證伺服器遇上未知狀況,令請求無法通過。 | |||||
temporarily_unavailable: 認證伺服器由於臨時負荷過重或者維護,目前未能處理請求。 | |||||
unauthorized_client: 用戶程式無權用此方法 (method) 請行這個請求。 | |||||
unsupported_grant_type: 授權伺服器不支援這個授權類型 (grant type)。 | |||||
unsupported_response_type: 授權伺服器不支援這個回應類型 (response type). | |||||
flash: | |||||
applications: | |||||
create: | |||||
notice: 已新增應用程式。 | |||||
destroy: | |||||
notice: 已刪除應用程式。 | |||||
update: | |||||
notice: 已更新應用程式。 | |||||
authorized_applications: | |||||
destroy: | |||||
notice: 已取消應用程式授權。 | |||||
layouts: | |||||
admin: | |||||
nav: | |||||
applications: 應用程式 | |||||
oauth2_provider: OAuth2 供應者 | |||||
application: | |||||
title: 需要 OAuth 授權 | |||||
scopes: | |||||
follow: 關注、封鎖、解除封鎖及取消關注用戶 | |||||
read: 閱讀你的用戶資料 | |||||
write: 以你的名義發佈文章 |
@@ -0,0 +1,46 @@ | |||||
--- | |||||
zh-HK: | |||||
simple_form: | |||||
hints: | |||||
defaults: | |||||
avatar: 支援 PNG, GIF 或 JPG 圖片,檔案大小上限為 2MB,會被縮裁成 120x120px | |||||
display_name: 最多 30 個字元 | |||||
header: 支援 PNG, GIF 或 JPG 圖片,檔案大小上限為 2MB,會被縮裁成 700x335px | |||||
locked: 你必須人手核准每個用戶對你的關注請求,而你的文章私隱會被預設為「只有關注你的人能看」 | |||||
note: 最多 160 個字元 | |||||
imports: | |||||
data: 自其他服務站匯出的 CSV 檔案 | |||||
labels: | |||||
defaults: | |||||
avatar: 個人頭像 | |||||
confirm_new_password: 確認新密碼 | |||||
confirm_password: 確認密碼 | |||||
current_password: 目前密碼 | |||||
data: 資料 | |||||
display_name: 顯示名稱 | |||||
email: 電郵地址 | |||||
header: 個人頁面頂部 | |||||
locale: 語言 | |||||
locked: 將用戶轉為「私人」 | |||||
new_password: 新密碼 | |||||
note: 簡介 | |||||
otp_attempt: 雙重認證碼 | |||||
password: 密碼 | |||||
setting_default_privacy: 文章預設私隱度 | |||||
type: 匯入資料類型 | |||||
username: 用戶名稱 | |||||
interactions: | |||||
must_be_follower: 隱藏沒有關注你的用戶的通知 | |||||
must_be_following: 隱藏你不關注的用戶的通知 | |||||
notification_emails: | |||||
digest: 定期電郵摘要 | |||||
favourite: 當有用戶喜歡你的文章時,發電郵通知 | |||||
follow: 當有用戶關注你時,發電郵通知 | |||||
follow_request: 當有用戶要求關注你時,發電郵通知 | |||||
mention: 當有用戶在文章提及你時,發電郵通知 | |||||
reblog: 當有用戶轉推你的文章時,發電郵通知 | |||||
'no': '否' | |||||
required: | |||||
mark: "*" | |||||
text: 必須填寫 | |||||
'yes': '是' |
@@ -0,0 +1,172 @@ | |||||
--- | |||||
zh-HK: | |||||
about: | |||||
about_mastodon: Mastodon (長毛象)是一個<em>自由、開放源碼</em>的社交網站。它是一個分散式的服務,避免你的通訊被單一商業機構壟斷操控。請你選擇一家你信任的 Mastodon 服務站,在上面建立帳號,然後你就可以和任一 Mastodon 服務站上的用戶互通,享受無縫的<em>社交網絡</em>交流。 | |||||
about_this: 關於本服務站 | |||||
apps: 應用程式 | |||||
business_email: 商業電郵︰ | |||||
closed_registrations: 本服務站暫時停止接受登記。 | |||||
contact: 聯絡 | |||||
description_headline: 關於 %{domain} | |||||
domain_count_after: 個其他服務站 | |||||
domain_count_before: 已連接至 | |||||
features: | |||||
api: 開放 API,供各式應用程式及服務連入 | |||||
blocks: 完善的封鎖用戶、靜音功能 | |||||
characters: 每篇文章最多 500 字 | |||||
chronology: 時間軸忠實按時序顯示文章,不作多餘處理 | |||||
ethics: 良心設計︰沒有廣告,不追蹤你的使用行為 | |||||
gifv: 支援顯示 GIFV 短片圖組 | |||||
privacy: 可逐篇文章設定私隱度 | |||||
public: 公共時間軸 | |||||
features_headline: 甚麼讓 Mastodon 與眾不同 | |||||
get_started: 立即登記 | |||||
links: 連結 | |||||
other_instances: 其他服務站 | |||||
source_code: 源代碼 | |||||
status_count_after: 篇文章 | |||||
status_count_before: 他們共發佈了 | |||||
terms: 使用條款 | |||||
user_count_after: 位使用者 | |||||
user_count_before: 這裏共註冊有 | |||||
accounts: | |||||
follow: 關注 | |||||
followers: 關注者 | |||||
following: 正在關注 | |||||
nothing_here: 暫時未有內容可以顯示 | |||||
people_followed_by: '%{name} 關注的人' | |||||
people_who_follow: 關注 %{name} 的人 | |||||
posts: 文章 | |||||
remote_follow: 跨站關注 | |||||
unfollow: 取消關注 | |||||
application_mailer: | |||||
settings: '修改電郵設定︰ %{link}' | |||||
signature: 來自 %{instance} 的 Mastodon 通知 | |||||
view: '進入瀏覽︰' | |||||
applications: | |||||
invalid_url: 所提供的網址不正確 | |||||
auth: | |||||
change_password: 登入資訊 | |||||
didnt_get_confirmation: 沒有收到確認指示電郵? | |||||
forgot_password: 忘記了密碼? | |||||
login: 登入 | |||||
logout: 登出 | |||||
register: 登記 | |||||
resend_confirmation: 重發確認指示電郵 | |||||
reset_password: 重設密碼 | |||||
set_new_password: 設定新密碼 | |||||
authorize_follow: | |||||
error: 對不起,尋找這個跨站用戶的過程發生錯誤 | |||||
follow: 關注 | |||||
prompt_html: '你 (<strong>%{self}</strong>) 正準備關注︰' | |||||
title: 關注 %{acct} | |||||
datetime: | |||||
distance_in_words: | |||||
about_x_hours: "%{count}小時前" | |||||
about_x_months: "%{count}個月前" | |||||
about_x_years: "%{count}年前" | |||||
almost_x_years: "接近%{count}年前" | |||||
half_a_minute: 剛剛 | |||||
less_than_x_minutes: "少於%{count}分鐘前" | |||||
less_than_x_seconds: 剛剛 | |||||
over_x_years: "%{count}y" | |||||
x_days: "%{count}日" | |||||
x_minutes: "%{count}分鐘" | |||||
x_months: "%{count}個月" | |||||
x_seconds: "%{count}秒" | |||||
exports: | |||||
blocks: 被你封鎖的用戶 | |||||
csv: CSV | |||||
follows: 你所關注的用戶 | |||||
storage: 媒體容量大小 | |||||
generic: | |||||
changes_saved_msg: 已成功儲存修改 | |||||
powered_by: 網站由 %{link} 開發 | |||||
save_changes: 儲存修改 | |||||
validation_errors: | |||||
one: 提交的資料有問題 | |||||
other: 提交的資料有 %{count} 項問題 | |||||
imports: | |||||
preface: 你可以在此匯入你在其他服務站所匯出的資料檔,包括︰你所關注的用戶,被你封鎖的用戶。 | |||||
success: 你已成功上載資料檔,我們正將資料匯入,請稍候 | |||||
types: | |||||
blocking: 被你封鎖的用戶名單 | |||||
following: 你所關注的用戶名單 | |||||
upload: 上載 | |||||
landing_strip_html: <strong>%{name}</strong> 是一個在 <strong>%{domain}</strong> 的用戶。只要你有任何 Mastodon 服務站、或者聯盟網站的用戶,便可以跨站關注此站用戶,或者與他們互動。如果你沒有這類用戶,歡迎在<a href="%{sign_up_path}">此處登記</a>。 | |||||
media_attachments: | |||||
validations: | |||||
images_and_video: 不能在已有圖片的文章上加入影片 | |||||
too_many: 不可以加入超過 4 個檔案 | |||||
notification_mailer: | |||||
digest: | |||||
body: '這是自從你在%{since}使用%{instance}以後,你錯失了的訊息︰' | |||||
mention: "%{name} 在此提及了你︰" | |||||
new_followers_summary: | |||||
one: 你新獲得了 1 位關注者了!恭喜! | |||||
other: 你新獲得了 %{count} 位關注者了!好厲害! | |||||
subject: | |||||
one: "自從上次登入以來,你收到 1 則新的通知 \U0001F418" | |||||
other: "自從上次登入以來,你收到 %{count} 則新的通知 \U0001F418" | |||||
favourite: | |||||
body: '你的文章獲得 %{name} 的喜愛' | |||||
subject: "%{name} 喜歡你的文章" | |||||
follow: | |||||
body: "%{name} 開始關注你!" | |||||
subject: "%{name} 現正關注你" | |||||
follow_request: | |||||
body: "%{name} 要求關注你" | |||||
subject: '等候關注你的用戶︰ %{name}' | |||||
mention: | |||||
body: '%{name} 在文章中提及你︰' | |||||
subject: '%{name} 在文章中提及你' | |||||
reblog: | |||||
body: '你的文章得到 %{name} 的轉推' | |||||
subject: "%{name} 轉推了你的文章" | |||||
pagination: | |||||
next: 下一頁 | |||||
prev: 上一頁 | |||||
truncate: "……" | |||||
remote_follow: | |||||
acct: 請輸入你的︰用戶名稱@服務點域名 | |||||
missing_resource: 無法找到你用戶的轉接網址 | |||||
proceed: 下一步 | |||||
prompt: '你希望關注︰' | |||||
settings: | |||||
authorized_apps: 授權應用程式 | |||||
back: 回到 Mastodon | |||||
edit_profile: 修改個人資料 | |||||
export: 匯出 | |||||
import: 匯入 | |||||
preferences: 偏好設定 | |||||
settings: 設定 | |||||
two_factor_auth: 雙重認證 | |||||
statuses: | |||||
open_in_web: 開啟網頁 | |||||
over_character_limit: 超過了 %{max} 字的限制 | |||||
show_more: 顯示更多 | |||||
visibilities: | |||||
private: 只有關注你的人能看 | |||||
public: 公開 | |||||
unlisted: 公開,但不在公共時間軸顯示 | |||||
stream_entries: | |||||
click_to_show: 點擊顯示 | |||||
reblogged: 轉推 | |||||
sensitive_content: 敏感內容 | |||||
time: | |||||
formats: | |||||
default: "%Y年%-m月%d日 %H:%M" | |||||
two_factor_auth: | |||||
code_hint: 請輸入你認證器產生的代碼,以確認設定 | |||||
description_html: 當你啟用<strong>雙重認證</strong>後,你登入時將需要使你手機、或其他種類認證器產生的代碼。 | |||||
disable: 停用 | |||||
enable: 啟用 | |||||
enabled_success: 已成功啟用雙重認證 | |||||
instructions_html: <strong>請用你手機的認證器應用程式(如 Google Authenticator、Authy),掃描這裏的 QR 圖形碼</strong>。在雙重認證啟用後,你登入時將須要使用此應用程式產生的認證碼。 | |||||
manual_instructions: 如果你無法掃描 QR 圖形碼,請手動輸入這個文字密碼︰ | |||||
setup: 設定 | |||||
warning: 如果你現在無法正確設定你的應用程式,請即「停用」雙重認證,否則日後可能無法登入本站。 | |||||
wrong_code: 你輸入的認證碼並不正確!可能伺服器時間和你手機不一致,請檢查你手機的時鐘,或與本站管理員聯絡。 | |||||
users: | |||||
invalid_email: 電郵地址格式不正確 | |||||
invalid_otp_token: 雙重認證確認碼不正確 |