Weblate CDN を使用した HTML と JavaScript の翻訳¶
Weblate 4.2 以降では、JavaScript 現地語化 CDN アドオンを使用して現地語化したものを CDN にエクスポートできるようになりました。
注釈
この機能は、Hosted Weblate で設定します。インストール時に追加の設定が必要です。参照: LOCALIZE_CDN_URL
および LOCALIZE_CDN_PATH
。
コンポーネントにインストールすると、コミットされた翻訳(参照: 遅延コミット)が CDN にプッシュされ、Web ページの表示に使われます。
コンポーネントの作成¶
まず、文字列を保持するモノリンガルのコンポーネントを作成してください。一般的な作成方法については、翻訳プロジェクトとコンポーネントの追加 を確認してください。
既存のリポジトリ(例: HTML ファイルのみを含んだもの)を使って開始する場合、リポジトリ内に原文の言語(参照: 原文の言語 )用の空の JSON ファイルを、例えば locales/en.json
のように作成します。内容は空のオブジェクトを示す {}
であることが必要です。それができたら、リポジトリを Weblate にインポートして、アドオン設定から開始できます。
ヒント
既存の翻訳がある場合は、翻訳を言語の JSON ファイルに配置すると、Weblate で使用されます。
既存のリポジトリを使用しない(または存在しない)場合は、コンポーネントの作成時に ゼロから始める を選択し、ファイル形式として JSON ファイル を選択します(この時点では、どのモノリンガル形式を選択しても問題ありません) 。
Weblate CDN アドオンの設定¶
JavaScript 現地語化 CDN アドオンには、設定オプションがあります。
- 翻訳率のしきい値
このしきい値を超えて翻訳した翻訳は、CDN に含まれます。
- CSS セレクタ
HTML 文書内のどの文字列を翻訳可能にするかを設定します。参照: Weblate CDN の文字列抽出 および Weblate CDN を使用した HTML の現地語化。
- 言語 Cookie 名
ユーザーが選択した言語を含むクッキーの名前。JavaScript スニペットの Weblate CDN を使用した HTML の現地語化 で使用します。
- HTMLファイルから文字列を抽出
Weblate が、翻訳可能な文字列を検索して翻訳用に提供するリポジトリまたは URL 内のファイルの一覧。参照: Weblate CDN の文字列抽出。
Weblate CDN の文字列抽出¶
翻訳文字列は、Weblate に存在することが必要です。これを手動で管理するか、API を使用して作成するか、HTMLファイルから文字列を抽出 を使用してファイルまたは URL のリストを用意すると、Weblate は翻訳文字列を自動的に抽出します。ファイルはリポジトリに存在するか、Weblate が定期的にダウンロードして解析するリモート URL が含まれていることが必要です。
CSS セレクタ のデフォルト設定では、CSS クラス l10n
の要素を抽出します。次のスニペットから 2 つの文字列を抽出する例:
<section class="content">
<div class="row">
<div class="wrap">
<h1 class="section-title min-m l10n">Maintenance in progress</h1>
<div class="page-desc">
<p class="l10n">We're sorry, but this site is currently down for maintenance.</p>
</div>
</div>
</div>
</section>
既存のコードを変更したくない場合は、*
をセレクタにして全ての要素を処理の対象にできます。
注釈
現時点では、要素のテキストのみ抽出します。このアドオンは、要素属性または子を持つ要素の現地語化に対応していません。
Weblate CDN を使用した HTML の現地語化¶
HTML ドキュメントを現地語化するには、weblate.js
スクリプトの読み込みが必要です。読み込み方法:
<script src="https://weblate-cdn.com/a5ba5dc29f39498aa734528a54b50d0a/weblate.js" async></script>
読み込み時に、(CSS セレクタ 設定に基づき)翻訳可能な要素に一致するものがすべて自動的に検索され、一致したテキストが翻訳に置き換えられます。
ユーザー言語は、設定した Cookie から検出され、ブラウザーで設定したユーザーの言語設定にフォールバックします。
言語 Cookie 名 は、他のアプリケーションとの連携に役立ちます(たとえば、Django を使用する場合は django_language
を選択する)。
JavaScript の現地語化¶
個々の翻訳は、CDN の下でバイリンガル JSON ファイルとして公開されます。1 つを取得するためのコード例:
fetch(("https://weblate-cdn.com/a5ba5dc29f39498aa734528a54b50d0a/cs.json")
.then(response => response.json())
.then(data => console.log(data));
この場合、実際の現地語化のプログラムの実装が必要です。