擬似翻訳ではすべての文字列をわかりやすい偽のテキストに置き換えます。左から右へ書く言語では、各文字にアクセントが付き、文字列は括弧内で拡張されます:変更を保存に変わります⟦Šáṽé çĥáñĝéš··········⟧。右から左へ書く言語では、各文字列が方向指定により逆順になり、アラビア語やヘブライ語が存在する前でもページが右から左へ読めるようになります。
このようにレンダリングされたページでは、3つの問題が確認できます:
- プレーンテキストはカタログから取得されるものではなく、コード内に記述されるか実行時に生成されます。
- 切り詰められたテキストは長い言語に対応するスペースが確保されていません。
- 固定されたレイアウトは右から左へ書くページでは、開始と終了の代わりに左と右が使用されます。
すべての注文で送料無料
変更を保存⟦変更を保存·····⟧価格には税が含まれます。⟦価格には税が含まれます。··········⟧
すべての注文で送料無料
変更を保存変更を保存価格には税が含まれます。価格には税が含まれます。
- カタログに記載されていないテキスト/{locale}/ · p#promo · “すべての注文で送料無料” · runtime_text (de-DE, ar-SA)
- 文字数が増えると切り取られるテキスト/{locale}/ · button#save · “⟦変更を保存·····⟧” · clipped_text (de-DE)
- 右から左へのレイアウトが正しく反映されない/{locale}/ · p#note · “padding-left: 12px” · unmirrored_layout (ar-SA)
疑似ローカライズされたページの表示例:ドイツ語版ではすべての文字列にアクセントが付き長くなり、アラビア語版では右から左へと表示されます。プローブによりコード内に記述されたテキスト、テキストが切り取られるボタン、左側に配置される罫線がマークされます。参考用データです。
グローバリゼーションチェックにおいて
設定ファイルにアプリケーションの起動方法が記載されている場合、グローバリゼーションチェックは変更があったたびにページをレンダリングしてチェックします。チェック用の独立したサンドボックス内で変更のコピーを利用するため、偽の翻訳がリポジトリや他のチェックに影響を与えることはありません:
- 擬似翻訳はプロジェクトの左から右へ書く言語版と右から左へ書く言語版の両方に書き込まれます。
- 依存関係がインストールされ、アプリケーションが起動します。
- 該当言語に設定されたブラウザで、両言語のページをすべて開き、画面上に表示される内容を確認します。
- アプリケーションが停止し、そのコピーが削除されます。
検出された内容がチェックの結果となります:
| コード | 検出された内容 |
|---|---|
runtime_text | 擬似マークのない可視テキスト |
clipped_text | ボックス内で切り詰められた擬似テキストで、overflowが隠されているか省略記号が付いています |
unmirrored_layout | 右から左へ書くページ:右から左へ書かれていないページ、左または右に揃えられたテキストや浮動要素、左または右で配置・余白・パディングが設定された要素 |
両言語で同じテキストが見つかった場合、それが1つの結果となります。この結果はタスクの発見された問題にページ、要素、テキスト、言語などの情報とともに表示されます,例えば/{locale}/ · p#promo · “Free shipping on every order” · runtime_text (de-DE, ar-SA)。
これらの結果は報告されますが、ユーザーが選択するまで何もブロックしません。「品質管理 → グローバリゼーション、ページをレンダリングでこの手順を無効にし、「修正が必要なページの問題でどのコードをブロックするかを指定します。
インストールまたは起動できないアプリケーションは、正常にレンダリングされていないと報告され、その出力内容が記録されますが、完全なレンダリング結果とはみなされません。ページの問題をブロックする設定にした場合にのみ、変更が保持されます。
設定する
「world.render」を「.coroid/i18n.json:
{
"world": {
"render": {
"start": "npm run dev",
"pages": ["/{locale}/", "/{locale}/pricing", "/{locale}/checkout"]
}
}
}| フィールド | 意味 |
|---|---|
start | アプリケーションを起動します。指定されたポートでリスニングする必要があります,$PORT;HOSTは127.0.0.1 |
pages | アプリケーションのルートから最大10個のパスです。{locale}は言語タグに変換されるため、/{locale}/pricingが「/de-DE/pricing」を開きます;言語がクエリパラメーターの場合は「/?lang={locale}を使用してください |
directory | リポジトリ内のアプリケーションのフォルダーで、ルートではない場合 |
install | 依存関係をインストールするコマンドです。この設定がない場合、Coroid は "" のときに npm を実行します。package.jsonが何らかの値を宣言している場合 |
locales | レンダリングする対象言語は最大3つです。指定がない場合は、最初の左から右へ書く言語と最初の右から左へ書く言語が使用されます。 |
readyTimeoutMs | アプリケーションが応答するまでの時間で、デフォルトは120,000です。 |
ブラウザは各言語を優先言語として送信するため、ブラウザから言語を取得するアプリケーションは「{locale}。
このフィールドを使用するには、設定内で CLI 1.16.0 以降が必要です,cliのバージョンを固定してください;古いエンジンではこの設定を受理できません。
除外される内容
このチェックでは人間が目で確認できる内容のみを読み取ります。非表示の要素やコード(code、pre、kbd、samp)、フォームフィールド自体の値、およびtranslate="no"、aria-hidden="true"、data-i18n-ignoreまたはクラス「notranslate」の設定内の単語world.allowリストに含まれる製品名などのテキストは、プレーンテキストとして報告されることはありません。
製品名やユーザー入力内容など、自身のデータから生成されるテキストもカタログによって翻訳されることはありません。そのコンテナには「translate="no"またはdata-i18n-ignore」と記述してください。これによりブラウザの翻訳ツールもその内容を翻訳しないようになります。
自分で試す
擬似翻訳機能はコマンドラインツールに組み込まれています。言語の翻訳内容が上書きされるため、一時的なチェックアウト環境で実行してください:
coroid-i18n pseudo --locale de-DE # accented and longer
coroid-i18n pseudo --locale ar-SA # reversed, right to left
coroid-i18n pseudo --locale de-DE --style rtl # choose the style yourselfその後、アプリケーションを起動し、該当言語でページを開きます。プレースホルダー、複数形、マークアップはそのまま維持されるため、アプリケーションは通常通り動作します。Markdown や MDX ページも元のままです。