フロントエンドエンジニアの今村です。 この記事はAngular Advent Calendar 2018 11日目の記事で、テーマは多言語対応です。 Angular Advent CalendarなのでAngularの話を中心に書きますが、手法としてはAngularに限らず、ひろく(TypeScriptで書かれた)Webフロントエンド全般の多言語対応に適用可能なものです。というのも、私は以前にも似たような記事をQiitaに投稿していて、その時はReactをやっていました。 この記事ではQiitaに投稿した方法を少し改良したやり方をご紹介しますが、TypeScriptの型に甘えて多言語対応を実現したいという気持ちは一貫しています。 TL;DR 辞書ファイルをTypeScriptで書きたいという思いのもと、Angularの標準のi18n機能やその他のライブラリに頼らずに実装した多言語対応を紹介
本記事は下記のtweetから始まるスレッドに触発され、@qnighyや@na4zagin3からアイディアを拝借して書いた。 i18n力が最強の国は国内に複数の言語があり、そのうちいくつかは他国でも使われている言語の方言で、1バイト文字での代替表記が困難で、歴史的にISO-2022ベースの文字コードとUnicodeと独自エンコーディングが混在していて、フリガナなどの特殊な組版規則があり、右書き左書き縦書きを併用し、 — Masaki Hara (@qnighy) 2018年8月6日 皆さんのおかげで最強のi18n国家が建設されつつある。一瞬で滅びそう — Masaki Hara (@qnighy) 2018年8月6日 長い前置き ソフトウェアのi18nは難しい。自文化では当たり前と思っていてハードコードしてしまった仮定が崩れて、大幅な再設計を余儀なくされるからだ。気づいて再設計できればまだ良
こんにちは。フロントエンドエンジニアのaxrossです。この記事では、弊社のサービス「Kaizen Ad」で行った "i18n" (国際化) の取り組みについて紹介したいと思います。 Kaizen Adでは、サービス提供を行う地域として日本とアメリカを同時に見据えて開発をしてきました。そのため、プロジェクト発足当初から意識して開発を始め、(クローズドな) ファーストローンチの2週間後にはこの記事で紹介するようなi18nを取り入れています。 i18nとは "Internationalization" の略で、単語の最初の文字 "I" と 単語の最後の文字 "N" との間に18文字あることからこのように略されます。 i18nをどのように考えるか? まずは、Kaizen Adを国際化するにあたって考えたことについて話したいと思います。大きく分けて2つの点をチームで徹底して意識しながら開発を進めま
“ We are long time users of Crowdin. They provide a flexible platform for streamlining localization projects with numerous integration options and automation capabilities. As we transition to their enterprise solution, Crowdin support never lets you down when a question arises. They are also great partners as we collaborate on enhancements and features. I can't say enough good things about Crowdin
概要 Angularの4系でやっています。 Angularの多言語対応については、こちらのドキュメントを参考にしました(・ω・) 簡単にいうと...message.ja.xlf, message.en.xlfなどの言語ファイルを作り、ここで管理していくみたいです。 <?xml version="1.0" encoding="UTF-8" ?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="ng2.template"> <body> <trans-unit id="hello" datatype="html"> <source>Hello world</source> <target>わん
Google Sheetsで作ったシートをtsvでpublishする機能はデフォルトでついているので、そのtsvをi18n-jsで読み込める形式に変換するパッケージ tsv-i18njs を作りました。 なんでGoogle Sheetsでi18n文字列を管理するの?Railsだと config/locales の下にロケールごとに *.locale.yaml のファイルを作って管理するけどこの方法は以下の点で好ましくありません。 文言の変更をエンジニアが対応しないといけない(お互い面倒でやりたくなくなる)特定ロケールで文言が欠けていても気がつかないその点sheetsで管理するといいことばかりです。 だれでも変更できるconditional formatting で特定ロケールで欠けていてもすぐ分かるsheetをそのまま外部に翻訳依頼できる=GOOGLETRANSLATE() も使える(いい
Play 2 (Scala) i18n Patterns かる@krrrr38 2015新卒(Java, Perl)で上京 Slickドキュメント 日本語訳 Agendai18n Basic PatternPlay 2.3 Play 2.4 i18n Path Variable PatternSimple Pattern /en/page /ja/page Optional Lang Path Variable Pattern /page /ja/page i18n sbt 💪 Patterncode generating i18n basic in Play 2.3controller 側 : Lang を生成して view に渡す def index = Action { implicit request => ... // request2lang (trait Controlle
FormatJS is a set of JavaScript libraries.FormatJS is a modular collection of JavaScript libraries for internationalization that are focused on formatting numbers, dates, and strings for displaying to people. It includes a set of core libraries that build on the JavaScript Intl built-ins and industry-wide i18n standards, plus a set of integrations for common template and component libraries. Integ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く