グローバル社会。システムにも「国際化」が求められる。
が、ここでいう国際化、
言語を対応すればいいんでしょ!
っていうと、
ちが~う!!ぜんぜんちが~う!!
たしかに言語を対応しなきゃいけないことはたしか。
だけど、他にも対応しないといけないことがある。
コード対応⊂外国語対応⊂各国対応⊂多国語対応
という感じでふえてくる
■コード対応
日本語でも、文字コードに対応しないと文字化けする。
ということで、ブラウザ・サーバープログラム間で
コード対応しないといけなくなる。
原則は
「外からきたデータは、できるだけ、外側の段階で
UTF-8等のunicodeに変換する」
理由は後でわかる。
なのでブラウザからデータを送る時は、UTF-8で、
サーバーからデータを送る時は基本UTF-8で
ということになる。
■外国語対応
以下の対応が必要になる
・表示する文字を対応する言語に翻訳
→poファイルがどうとかこうとか
→画像で文字が貼りこんである場合に注意
・フォントを表示する言語に
→フォントがあるかどうか?
このほか、確認しておくこととして
・キーボードは?
・文字入力方法は?
日本語だとかな漢
中国語だとピンイン(Pinyin)
などなど・・・
■各国対応
さらに以下の対応が必要になる
・時刻対応
システム内ではUTCベースで扱い、
プログラム的には
PHPだとDateTimeでタイムゾーン指定
Javaの場合、1.8でDate and Time APIが出たことにより、扱いが変わった。
・各国事情により違うもの
たとえば、
・氏名:ミドルネームの存在、敬称
・郵便番号(Zip Code):国により桁数がちがうみたい。郵便番号から住所入力ツールはもちろん変更あり
・個人情報の範囲
・休日
などなど・・・
ただし、電話番号はITU-Tの規約E.164で決まっているので、あまり違わない
また、マイナンバーは日本以外通じない。Can I have your my number?は、ゆあ・まいなんばー?とおかしがられる
■多国語対応
つまり、トランザクションごとに、どこの国のレコードが来るかわからない状態のもの。
サーバーがアメリカ1か所で、ブラウザで日本の本社、ポルトガル、ブラジルで使えるようなケース。
この場合、問題となることがある
・バッチ処理をいつ、流せばよい?
1日の終わりをどこにとるか?
サーバーの置いてあるアメリカ?それとも、本社の日本?いやUTCで考えようなどなど・・
・時間は、トランザクションごとに考える必要あり
つまり、同じポルトガル語で来ても、ポルトガルからか、ブラジルからか、わからない
ポルトガルとブラジルでは時間がちがう。
なので、動的にDateTimeを設定しないといけないが、この場合、どこからTimeZoneを知ることができるか
等など・・・
このほかにも、いろいろあると思うが、たたき台として、
このくらいが思いついたこと。
が、ここでいう国際化、
言語を対応すればいいんでしょ!
っていうと、
ちが~う!!ぜんぜんちが~う!!
たしかに言語を対応しなきゃいけないことはたしか。
だけど、他にも対応しないといけないことがある。
コード対応⊂外国語対応⊂各国対応⊂多国語対応
という感じでふえてくる
■コード対応
日本語でも、文字コードに対応しないと文字化けする。
ということで、ブラウザ・サーバープログラム間で
コード対応しないといけなくなる。
原則は
「外からきたデータは、できるだけ、外側の段階で
UTF-8等のunicodeに変換する」
理由は後でわかる。
なのでブラウザからデータを送る時は、UTF-8で、
サーバーからデータを送る時は基本UTF-8で
ということになる。
■外国語対応
以下の対応が必要になる
・表示する文字を対応する言語に翻訳
→poファイルがどうとかこうとか
→画像で文字が貼りこんである場合に注意
・フォントを表示する言語に
→フォントがあるかどうか?
このほか、確認しておくこととして
・キーボードは?
・文字入力方法は?
日本語だとかな漢
中国語だとピンイン(Pinyin)
などなど・・・
■各国対応
さらに以下の対応が必要になる
・時刻対応
システム内ではUTCベースで扱い、
プログラム的には
PHPだとDateTimeでタイムゾーン指定
Javaの場合、1.8でDate and Time APIが出たことにより、扱いが変わった。
・各国事情により違うもの
たとえば、
・氏名:ミドルネームの存在、敬称
・郵便番号(Zip Code):国により桁数がちがうみたい。郵便番号から住所入力ツールはもちろん変更あり
・個人情報の範囲
・休日
などなど・・・
ただし、電話番号はITU-Tの規約E.164で決まっているので、あまり違わない
また、マイナンバーは日本以外通じない。Can I have your my number?は、ゆあ・まいなんばー?とおかしがられる
■多国語対応
つまり、トランザクションごとに、どこの国のレコードが来るかわからない状態のもの。
サーバーがアメリカ1か所で、ブラウザで日本の本社、ポルトガル、ブラジルで使えるようなケース。
この場合、問題となることがある
・バッチ処理をいつ、流せばよい?
1日の終わりをどこにとるか?
サーバーの置いてあるアメリカ?それとも、本社の日本?いやUTCで考えようなどなど・・
・時間は、トランザクションごとに考える必要あり
つまり、同じポルトガル語で来ても、ポルトガルからか、ブラジルからか、わからない
ポルトガルとブラジルでは時間がちがう。
なので、動的にDateTimeを設定しないといけないが、この場合、どこからTimeZoneを知ることができるか
等など・・・
このほかにも、いろいろあると思うが、たたき台として、
このくらいが思いついたこと。