問題タブ [l20n]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html - HTMLマークアップでl20n?
次のようなものを作成したい場合、l20n をどのように使用しますか。
フレーズ全体を翻訳したいのですが、マークアップも必要です。私はこれをする必要はありません:
...翻訳自体が複製されているためです。
これは l20n の範囲内ではない可能性があることは理解していますが、現実の世界ではおそらく十分に一般的なケースです。これについて何らかの確立された方法はありますか?
javascript - l20n.js - javascript からローカリゼーション サブエンティティにアクセスする方法
この例では、LOL リソース内の変数にアクセスする方法を確認できます。
ただし、次のように、JavaScriptで同様のことを実行できるようにしたいと考えています。
これは私にはうまくいきません。少しデバッグしましたが、時間を無駄にしているように感じます。おそらくこれを行う簡単な方法が既にあります。ある?
javascript - l20n.js を使用してブラウザでレンダリングする言語を指定するにはどうすればよいですか?
l20n.js を使用して、Angular.js アプリにローカリゼーションを追加しています。これが私のプロジェクト構造です:
/index.html
/locales/manifest.json
/locales/en-US/strings.l20n
/locales/fr-FR/strings.l20n
/locales/en/strings.l20n
英語 (つまりファイル) をフランス語に置き換えるにはどうすればよいですか? lang="fr-FR"
で示されているにもかかわらず、en-US をレンダリングしindex.html
ます。
mozilla - L20N がエンティティ変数と包含を処理しない原因は何ですか?
L20Nは私の ReactJS プロジェクトでセットアップされており、そのイベントが発生getSync
したcontext
後ready
に を呼び出しています (うまくいくはずです)。ただし、他のエンティティ値と変数展開を含む予想される文字列ではなく、生のエンティティ文字列を取得します。
私が得る文字列は次のようになります。
{{$user.name}} - {{appName}}
しかし、もちろん、私は次のようなものを期待しています:
Ben Taylor - My Cool App
この plunker で問題を再現しようとしました。残念ながら、それはうまくいきます!実行すると、アラート ボックスに予想される L20N 拡張文字列が表示されます。
Entity 値がそのまま返される原因は何ですか? 有効なものcontext
があり、インスペクターにエラーがないため、すべてが正常に構成されているようです。L20Nを壊している私がやっている他の何かとの相互作用があるかどうか疑問に思っています。どんなアイデアでも大歓迎です!
私が取り組んでいるアプリを含めることはできませんが、言うまでもなく、もっと可動部分があります。このテンプレートを元にしたReactアプリです。
ember.js - ember-cli アプリで l20n ctx オブジェクトを保存する場所
ember-cli アプリをローカライズするために、l20n の bower バージョンを使用しています。
次のフローを使用してアプリをローカライズしています。
ユーザーの言語設定に基づいて l20n コンテキスト オブジェクトを作成するイニシャライザを作成しました。
ember ヘルパーを使用して、各単語を DOM から l20n コンテキスト オブジェクトに渡して翻訳します。
ハンドルバー テンプレート内:
残り火ヘルパーで:
これは機能しますが、ヘルパーが l20n コンテキストにアクセスできるようにするために、グローバル変数を Ember にタグ付けしただけです。私はそれがベストプラクティスではないことを知っています。l20n コンテキスト オブジェクトを格納するためだけに機能する ES6 モジュールを作成する方法を見つけようとしています。そうすれば、ember ヘルパー内で次のことができます。
l20n オブジェクトがアプリの残りの部分を動かなくなるのを防ぎます。
助けてくれてありがとう!!!
アップデート:
1 つの解決策は、次のように application.register を使用することです。
しかし、私の問題はヘルパーからコンテナにアクセスすることです。これ:
ヘルパーがコンテナーを使用できないため、機能しません!
html - カスタム属性を使用してブラウザーで l20n を使用する
l20n が標準の HTML 要素のデフォルト属性にのみ適用されるという問題が発生しています。
私の場合、JSON 形式で翻訳を処理しようとしています。私のダミーデータは次のとおりです。
私のテスト HMTL は次のとおりです。
ただし、ブラウザは次の HTML を生成します。
属性の順序と属性名のさまざまな組み合わせを試してみましたが、l20n によってローカライズされているのは、各要素タイプに適切なデフォルトの HTML 属性だけのようです。
この問題は、"title" などの標準 HTML 属性がカスタム要素内で使用されている場合にも明らかですが、l20n は標準要素の標準属性が<content>
カスタム要素のタグ内に配置されている場合に処理できます。
属性の処理に関する l20n のドキュメントはあまり広範ではないようです。これまでのところ、Stack Overflow や Google で回答を検索しても無駄であることが判明しており、Mozilla は独自のディスカッション リストとバグ トラッカーをホストしており、一般の人にはあまりアクセスできないようです。
l20n プロジェクトは流動的な状態にあるようで、私が使用しているバージョン (3.0.5) の ES5 と互換性があると思われる webcompat/l20n.js は、Array.from(); の使用のために Polyfill を必要とします。さらに、例と学習リソースは、フレームワークの使用方法と完全に一致していないようです。ソース コードは完全に文書化されていませんが、それにもかかわらず、フレームワークについて私がこれまでに得た理解のほとんどは、そこを見ることで得られました。コード内に属性名のフィルタリングが見られないため、この問題は、l20n がデータ属性をパスする前に、要素 (およびその属性) をブラウザーに登録する必要があることが原因であると思われます。
助けていただける方、よろしくお願いします。