laravel + vueで多言語サイトを作ったときのポイントをまとめておく - inokawablog

    laravel + vueで多言語サイトを作ったときのポイントをまとめておく

    多言語対応サイトをlaravelとvueで作ったのでその時のポイントをまとめておく。

    対応言語を一つ増やすと1.2倍くらい労力がかかるイメージだった

     

    言語は絞った方がいい

    treeで紹介されている通り、世界中では現在7,099の言語が話されています。もちろんそんなにカバーするのは不可能だし、facebookですら現在48言語です。基本的には英語と日本語の2つで大丈夫だと思いますが、世界の主要言語は英語・中国語・スペイン語がほとんどです。そのため、多言語を考えるのであれば、英語・中国語・スペイン語・日本語に対応させるのがベストかと思われます。

    というか、4言語以上に対応させようとすると翻訳だけでも大きな労力を割くことになります。重要なのはサービス本体ですので、言語に関しては英語を軸として最低限の言語だけ実装すれば良いと思います。

    さらに、国を絞ってサービスを展開するのであれば対象地域の言語を含めて実装すれば良いと思います。

     

    cssのスタイルが崩れる

    当然のことながら単語の文字数の長さが変わってくるので要素の中に収まりきらずはみ出してしまうものが出てくる。これは、対応言語全て考慮してデザインすることはほぼ無理なので、妥協する必要が出てくる。

    文字列を折り返す場合は、以下を指定してあげれば良いです。

    word-wrap: break-word;

     

     

    GDPRに対応させる

    GDPRは一般データ保護規則(General Data Protection Regulation)のことで、欧州のビジターに対して、個人情報の収集と使用の許可を得なくてはならず、これを怠ればEUプライバシー保護法に違反することになるもので罰則が結構厳しく、サービスの代償によらず適応されます。

    ヨーロッパがサービスの対象に入っているのであれば、GDPRに対応させる必要があります。週7日で働きたいがとても参考になりました。色々考えるのが面倒だと思う方はヨーロッパ圏をジオブロッキングしてしまえば良いと思います。長期的に見るとジオブロッキングは良いとはいえないが、サービスがおっきくなってから考えた方が、精神衛生的に良い気がする。サービスを出す前に色々考えるより、出した後に必要になったらしっかり考える方が良い。

    GDPRの究極の対策はジオブロッキングであるという事実

     

    時間の取り扱い

    データベースの時間の型の取り扱いが重要になる。

    LaravelをJST、MySQLをUTCで運用する

    こちらの記事が参考になった。

     

    laravel と vuex 両方で多言語管理するのはそんなに大変じゃない

    これは別記事にまとめておいた。

    vuex-i18nを使ってlaravel側とvuex側両方で管理する。

     

     

    URLの形式を考える

    多地域、多言語のサイトの管理

    サイトまたはその一部に対して、異なる地域を簡単にターゲティングできる URL 構造を使用するようにしてください。URL 構造の選択肢を次の表に示します。

    URL 構造 URL の例 長所 短所
    国別のドメイン example.de
    • 地域ターゲティングが明確
    • サーバーの場所に依存しない
    • サイトの分割が簡単
    • 高価(利用が制限される場合もある)
    • より多くのインフラが必要
    • ccTLD 要件が厳しい(一部)
    gTLD を使用するサブドメイン de.example.com
    • 設定が簡単
    • Search Console の地域ターゲティングを使用できる
    • 複数の場所のサーバーを使用できる
    • サイトの分割が簡単
    • ユーザーは URL のみから地域ターゲティングを認識できない場合がある(例: 「de」が言語なのか国なのかが不明)
    gTLD を使用するサブディレクトリ example.com/de/
    • 設定が簡単
    • Search Console の地域ターゲティングを使用できる
    • 管理しやすい(ホストが同じ)
    • ユーザーは URL のみから地域ターゲティングを認識できない場合がある
    • サーバーの場所は 1 か所のみ
    • サイトの分割が難しい
    URL パラメータ site.com?loc=de
    • 非推奨
    • URL ベースの分割が難しい
    • ユーザーは URL のみから地域ターゲティングを認識できない場合がある
    • Search Console の地域ターゲティングを利用できない

     

    多言語サイトのurl形式はこのようになっており、場合によって使い分けます。

    個人的なサイトで管理するのであれば、gTLD を使用するサブディレクトリがいいと思います。

     

     

    まとめ

    とりあえずこれくらいですかね。まだ何かあったら追加します。