Bài tập 27: Đa ngôn ngữ trong Android

[polldaddy poll=9764234]

– Bài tập này Tôi sẽ hướng dẫn các bạn cách tạo đa ngôn ngữ trong Android.

– Mobile trở thành thiết bị không thể thiếu được trên thế giới này. Người làm ruộng, bán vé số, bán bánh mì, nhân viên văn phòng, giám đốc, nhân viên bán hàng, bán tùm lum… every body…. đều sở hữu 1 chú Dế.

– Hỗ trợ đa ngôn ngữ giúp phần mềm ta bán chạy, mục tiêu viết phần mềm ra để bán kiếm tiền chứ không phải viết ra để tự kỷ 1 mình. Nên các bạn phải biết làm đa ngôn ngữ.

27_nn_0– Bài tập này Tôi sẽ làm 3 ngôn ngữ: Tiếng Anh, Tiếng Pháp, Tiếng Việt.

– Tiếng Pháp Tôi không biết gì cả (1 chữ cắn đôi không biết, như chữ “Không” bẻ đôi (dọc hoặc ngang) ra đọc bằng tiếng Pháp thì Tôi không biết được), Tôi dịch trên google.

– Đa ngôn ngữ chỉ là làm trên XML resource là chính (coding không phải sửa đổi, chỉ sửa resource theo đúng ngôn ngữ). Khi ta làm đúng ngôn ngữ theo resource thì khi người sử dụng chuyển ngôn ngữ trong Android nó sẽ tự tải đúng resource ngôn ngữ mà ta đã tạo.

– Cấu hình ngôn ngữ trong Android (bạn từ mò), Tôi chụp màn hình bên trong để chọn ngôn ngữ:

27_nn_2

– Tôi có ví dụ về 4 mùa trong năm: xuân, hạ , thu ,đông:

– Khi Setting trong Android là tiếng Anh:

27_nn_1– Tiếng Pháp:

27_nn_3– Tiếng việt:

27_nn_4– Bạn chú ý là các hình trên Tôi hoàn toàn không sửa đổi coding, Tôi chỉ đổi ngôn ngữ trong Android, nó tự động tải đúng Resource XML ngôn ngữ.

– Cách tạo Resource XML ngôn ngữ:

– Cần chú ý: tất cả các string resource id ở các ngôn ngữ khác nhau đều phải có cùng id.

– Mỗi một Quốc gia sẽ có một Code riêng với 2 ký tự:

27_nn_5-Bấm chuột phải vào Android Project/ chọn Android XML resource:

– Màn hình trên hiển thị ra. Bạn chọn vào mục Language rồi click biểu tượng số 1.

– Language sẽ hiển thị vào danh sách ở giữa

– ở mục số 2 bạn chọn Code Quốc gia (theo ngôn ngữ)

– Mục Folder ở số 3 sẽ được nối kèm ở đằng sau values.

– Bạn xem cấu trúc thư mục của Android Project sau khi bạn chọn ngôn ngữ xong (ở đây là tiếng anh, tiếng pháp, tiếng việt):

27_nn_6

-Bạn xem 3 tập tin strings.xml ở 3 ngôn ngữ khác nhau (nhớ là phải cùng id):

27_nn_7

– Xem XML layout:

[code language=”xml”]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#80FFFF" />

<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>

</LinearLayout>

[/code]

– Xem coding:

[code language=”java”]

package tranduythanh.com;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv=(ListView) findViewById(R.id.listView1);
ArrayAdapter<String>adapter=new ArrayAdapter<String>
(this,android.R.layout.simple_list_item_1,
getResources().getStringArray(R.array.myarray));
lv.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

}

[/code]

– Bây giờ bạn chỉ cần việc đổi chuyển ngôn ngữ trong Setting là xong, tự nhiên nó sẽ lấy đúng XML resource ngôn ngữ mà bạn tạo.

– Bạn tải coding mẫu ở đây: http://www.mediafire.com/?owbph611tqxtt50

– Bài tập này không khó, các bạn chỉ cần làm theo hướng dẫn.

– Bài tập sau các bạn sẽ học về xử lý tập tin trong Android, cũng khá quan trọng và hay, các bạn hãy chú ý theo dõi.

7 thoughts on “Bài tập 27: Đa ngôn ngữ trong Android”

  1. thầy có thể hướng dẫn về Sqlite và broadcast receiver được không ạh ? em đang bí vấn đề này. thank thầy nhiều 🙂

  2. Thầy ơi! sao không chuyển được ngôn ngữ ạ.Nó mặc định là tiếng việt.Chọn settings k thấy thay đổi gì ?

    1. à em hiểu rồi.tức là điện thoại mình để ngôn ngữ nào thì nó hiển thị ngôn ngữ đó.e cứ tưởng mình chỉnh trên soft luôn .@@

Leave a Reply