中国語、フランス語、英語、マレー語、日本語、韓国語など、さまざまな言語のデータをデータベースに挿入しています。
これらの言語を検出して特定の言語を照会するにはどうすればよいですか。たとえば、中国語のデータのみをクエリしてユーザーに表示したい場合です。
中国語、フランス語、英語、マレー語、日本語、韓国語など、さまざまな言語のデータをデータベースに挿入しています。
これらの言語を検出して特定の言語を照会するにはどうすればよいですか。たとえば、中国語のデータのみをクエリしてユーザーに表示したい場合です。
私があなたなら、UIコントロールに表示されるテキストを保存するために次のようなものがあります。
create table ui_labels (
control_id int,
language varchar(2),
label varchar(500),
primary key (control_id, language)
);
control_id
UIのコントロール(ボタンなど)ごとに1つ固有のものがあります。各コントロールには、言語ごとに1つずつ、多くのラベルを付けることができます。
次に、各UIコントロールは、言語ごとに異なるラベルを持つことができます。(ここでは2文字のISO言語コードを想定していますが、数値IDまたはその他の識別スキームを使用することもできます。)
これにより、テーブルに行を追加するだけで新しい言語を簡単に追加でき、クエリで使用する値をui_labels
切り替えるだけでUIに表示される言語を簡単に切り替えることができます。language
ボタンのデータは次のようになります。
insert into ui_labels (control_id, language, label)
values (1, 'en', 'Read the article');
insert into ui_labels (control_id, language, label)
values (1, 'es', 'Leer el artículo');
insert into ui_labels (control_id, language, label)
values (1, 'tl', 'Bumasa ang balita');
ただし、このアプローチの代わりに、PHPで翻訳を行うための標準的な方法であるgettextを調べることもできます。それはあなたのデータベースを使用しません。文字列をデータベースに配置する必要がある場合(たとえば、エンドユーザーが文字列を編集できる必要がある場合)、これはオプションではありませんが、検討できる可能性があります。これに興味がある場合は、このブログ投稿をご覧ください。