2015年8月9日日曜日

Androidアプリ開発で中国語に対応させる

拙いながらEclipse を使ってAndroidアプリ開発を行っています。現在、作成中のアプリは、英語と日本語の表示に対応させています。

まずプロジェクトのフォルダーの配下の/res/values/strings.xml というファイルにデフォルトの環境(英語環境)で表示させたい英語のメッセージなどの文字列をキーワードといっしょに記述しておきます。


次に、/res/values-ja/strings.xml というファイルに日本語環境で表示させたい日本語のメッセージの文字列をキーワードといっしょに記述しておきます。

ソースコードの中では、メッセージを直接書かずに、R.string.<キーワード> のように記述しておきます。

プログラムの実行時に R.string.<キーワード> の部分がそれぞれの言語の文字列に変換されて表示されるようです。英語でも日本語でもない言語の環境では、デフォルトの英語で表示されるようです。


今回、英語と日本語の言語の表示の他に、第3の言語として中国語の表示にも対応させようと考えつきました。

日本語の場合には、values-ja というフォルダにstrings.xml ファイルを配置しておりましたが、中国語の場合には、values-zh というフォルダにファイルを配置すればよいらしいことがわかりました。

なお中国語には繁体字と簡体字があるようなのですが、どのように区別してよいのかはわかりませんでした。



以下は、私が用意した英語用(デフォルト)、日本語用、中国語用のそれぞれのstrings.xml のサンプルです。中国語は、google のオンライン翻訳などを使って作成したものですが、中国の人にちゃんと通じるかどうかあまり自信がありません。

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">MDB Database Editor</string>
    <string name="versionCode">6</string>
    <string name="versionName">20150809.1100</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="select_database">Select Database File</string>
    <string name="tap_table">please tap a table name.</string>
    <string name="no_table">there is no table in this database.</string>
    <string name="error">error occurred.</string>
    <string name="not_access_file"> is not Access (.mdb .accdb)file.</string>
    <string name="upper_directory">(upper directory)</string>
    <string name="error_display_table">Error occurred in displaying table contents.</string>
    <string name="add_menu">Add Menu</string>
    <string name="search_menu">Search Menu</string>  
    <string name="previous20">previous 20 records</string>
    <string name="next20">next 20 records</string>
    <string name="complex_type">COMPLEX_TYPE column exists.</string>
    <string name="add">Add</string>
    <string name="search">Search</string>
    <string name="update">Update</string>
    <string name="delete">Delete</string>
    <string name="delete_by_sql">Delete by SQL statement</string>  
    <string name="search_comment">you can use * at Text field.ignore case</string>
    <string name="sort">sort:</string>
    <string name="sort_cancel">sort cancel</string>
    <string name="ignore_case">ignore case</string>
    <string name="asc">ascend</string>
    <string name="desc">descend</string>
    <string name="record_deleted">A record was deleted.</string>
    <string name="record_updated">A record was updated.</string>
    <string name="record_added"> record was added.</string>
    <string name="no_change">There is no change.</string>
    <string name="can_not_edit">can not edit(update,delete) this table</string>
    <string name="delete_confirmation">delete confirmation</string>
    <string name="are_you_sure">Are you sure to delete this record?</string>
    <string name="ok_delete">OK delete</string>
    <string name="cancel">Cancel</string>
    <string name="display_on_off">information on/off</string>
    <string name="dupuricate_record">(Warning)dupuricate record</string>
    <string name="only_first_editable">only first-find record can be edited/deleted.</string>
 
</resources>


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello_world">Hello world!</string>
    <string name="select_database">データベースファイルの選択</string>
    <string name="tap_table">テーブル名をタップしてください。</string>
    <string name="no_table">このデータベースにはテーブルがありません。</string>
    <string name="error">エラーが発生しました。</string>
    <string name="not_access_file">は Accessファイル (.mdb .accdb)ではありません。</string>
    <string name="upper_directory">(上の階層へ)</string>
    <string name="error_display_table">テーブルの内容の表示でエラー発生しました。</string>
    <string name="add_menu">追加メニュー</string>
    <string name="search_menu">検索メニュー</string>
    <string name="previous20">前の20件</string>
    <string name="next20">次の20件</string>
    <string name="complex_type">COMPLEX_TYPE のフィールドが存在します。</string>
    <string name="add">追加</string>
    <string name="search">検索</string>
    <string name="update">更新</string>
    <string name="delete">削除</string>
    <string name="delete_by_sql">SQL文による削除</string>
    <string name="search_comment">Textフィールドでは*が使用できます。大小文字区別なし</string>
    <string name="sort">並べ替え:</string>
    <string name="sort_cancel">並べ替え キャンセル</string>
    <string name="ignore_case">大小文字を区別しない</string>
    <string name="asc">昇順</string>
    <string name="desc">降順</string>
    <string name="record_deleted">レコードが削除されました。</string>
    <string name="record_updated">レコードが更新されました。</string>
    <string name="record_added">レコードが追加されました。</string>
    <string name="no_change">変更がありません。</string>
    <string name="can_not_edit">このテーブルは変更、削除できません。</string>
    <string name="delete_confirmation">削除の確認</string>
    <string name="are_you_sure">本当にこのレコードを削除しますか?</string>
    <string name="ok_delete">削除する</string>
    <string name="cancel">キャンセル</string>
    <string name="display_on_off">表示オンオフ</string>
    <string name="dupuricate_record">(警告)重複したレコード</string>
    <string name="only_first_editable">はじめに見つかったレコードのみ編集/削除が可能</string>
 
 
 
</resources>




<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello_world">Hello world!</string>
    <string name="select_database">选择一个数据库文件</string>
    <string name="tap_table">请选择一个表名</string>
    <string name="no_table">该数据库没有表</string>
    <string name="error">发生了错误。</string>
    <string name="not_access_file">这不是一个Access数据库(.mdb .accdb文件)</string>
    <string name="upper_directory">(父目录)</string>
    <string name="error_display_table">在表的显示会发生错误</string>
    <string name="add_menu">添加</string>
    <string name="search_menu">搜索</string>
    <string name="previous20">此前的20条记录</string>
    <string name="next20">接下来的20条记录</string>
    <string name="complex_type">COMPLEX_TYPE 会场上存在</string>
    <string name="add">添加</string>  
    <string name="search">搜索</string>
    <string name="update">更新</string>
    <string name="delete">删除</string>
    <string name="delete_by_sql">用sql删除</string>
    <string name="search_comment">在文本字段 您可以使用* 大写小写不敏感</string>
    <string name="sort">数据的排列:</string>
    <string name="sort_cancel">取消 数据的排列</string>
    <string name="ignore_case">大写小写不敏感</string>
    <string name="asc">升序</string>
    <string name="desc">降序</string>
    <string name="record_deleted">记录已被删除</string>
    <string name="record_updated">一个记录被更新</string>
    <string name="record_added">创纪录的加入</string>
    <string name="no_change">没有变化</string>
    <string name="can_not_edit">此表不能被改变或删除的</string>
    <string name="delete_confirmation">删除确认</string>
    <string name="are_you_sure">你确定要删除此记录?</string>
    <string name="ok_delete">删除</string>
    <string name="cancel">取消</string>
    <string name="display_on_off">显示的 开 关</string>
    <string name="dupuricate_record">(警告)重复记录</string>
    <string name="only_first_editable">唯一的记录你已经先发现,你可以更新或删除</string>
 
 
 
</resources>





0 件のコメント:

コメントを投稿