giải pháp toàn diện cho multi language

15
Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn Multi language A. Phân loại đa ngôn ngữ trong lập trình ứng dụng - Đa ngôn ngữ cho giao diện - Đa ngôn ngữ cho lưu trữ dữ liệu B. Các vấn đề thường xảy ra khi sử dụng đa ngôn ngữ - Đa ngôn ngữ cho giao diện Nên lưu trong database hay trong file? Cấu trúc database để lưu như thế nào? Khi lấy ra sẽ xử lý dữ liệu như thế nào? - Đa ngôn ngữ cho thông tin lưu trữ (database) Phân tích bảng đa ngôn ngữ cho category Phân tích bảng đa ngôn ngữ cho item - Tạo form nhập liệu cho đa ngôn ngữ C. Đa ngôn ngữ cho giao diện - Có 3 cách để thiết lập đa ngôn ngữ cho giao diện: Database, File, Database + File Cách 1: Database: 1. Sử dụng database

Upload: zendvn

Post on 12-Apr-2017

798 views

Category:

Education


6 download

TRANSCRIPT

Page 1: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn

Multi language

A. Phân loại đa ngôn ngữ trong lập trình ứng dụng

- Đa ngôn ngữ cho giao diện

- Đa ngôn ngữ cho lưu trữ dữ liệu

B. Các vấn đề thường xảy ra khi sử dụng đa ngôn ngữ

- Đa ngôn ngữ cho giao diện

Nên lưu trong database hay trong file?

Cấu trúc database để lưu như thế nào?

Khi lấy ra sẽ xử lý dữ liệu như thế nào?

- Đa ngôn ngữ cho thông tin lưu trữ (database)

Phân tích bảng đa ngôn ngữ cho category

Phân tích bảng đa ngôn ngữ cho item

- Tạo form nhập liệu cho đa ngôn ngữ

C. Đa ngôn ngữ cho giao diện

- Có 3 cách để thiết lập đa ngôn ngữ cho giao diện: Database, File, Database + File

Cách 1: Database:

1. Sử dụng database

Page 2: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn

2. Bảng [Languages]

2.1. Hiển thị danh sách ngôn ngữ trong hệ thống

2.2. Form nhập liệu

2.3. Dữ liệu trong database

Page 3: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn

3. Bảng [Words]

3.1. Dữ liệu trong database

3.2. Form nhập liệu

4. Bảng [languages_words]

4.1. Danh sách và form chỉnh sửa

Page 4: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn

4.2. Dữ liệu trong database

Page 5: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn

5. Cách xử lý

5.1. Cấu trúc mảng chứa languages

global $languages;

$languages = array(

array(

'words' => 'Hello',

'mean' => 'Chào bạn'

),

array(

'words' => 'What are your name',

'mean' => 'Bạn tên là gì'

),

array(

'words' => 'How do you do',

'mean' => 'Dạo này bạn có khỏe không'

),

array(

'words' => 'I love you',

'mean' => 'Tôi yêu bạn'

),

array(

'words' => 'My name is %s',

'mean' => 'Tên tôi là %s'

)

);

5.2. Hàm xử lý

function translate($words, $language){

global $languages;

$mean = '';

//Code goes here

//...

return $mean;

}

5.3. Sử dụng

echo translate('Hello', 'vi');

Cách 2: File

Page 6: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn

1. Tạo cấu trúc thư mục và tập tin

2. Cấu trúc tập tin

//module.quizz.ini

Type: Module

Name: Quizz

#

msgid "Hello"

msgstr "Chào bạn"

#

msgid "What are your name"

msgstr "Bạn tên là gì"

#

msgid "How do you do"

msgstr "Dạo này bạn có khỏe không"

#

msgid "I love you"

msgstr "Tôi yêu bạn"

#

msgid "My name is %s"

msgstr "Tên tôi là %s"

3. Cách xử lý

Page 7: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn

- Load nội dung tập tin đổ vào mảng và xử lý giống Cách 1 - Mục 5

4. Hiển thị danh sách file

5. Form chỉnh sửa nội dung của file

Cách 3: Database & File

Page 8: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn

1. Cách xử lý

- Sử dụng lại Cách 1:

+ Sau khi đã chỉnh sửa xong, khi nhấn [Save change] sẽ thực hiện 2 thao tác cũng 1 lúc

- Thao tác 1: Lưu vào database

- Thao tác 2: Tạo 1 mảng ngôn ngữ theo cấu trúc

$languages = array(

array(

'words' => 'Hello',

'mean' => 'Chào bạn'

),

array(

'words' => 'What are your name',

'mean' => 'Bạn tên là gì'

),

...

);

- Tiếp dùng hàm serialize() chuyển thành chuỗi và lưu vào 1 file text nào đó (Ví dụ: vi.ini)

- Khi sử dụng thì chúng đọc nội dung file text (Ví dụ: vi.ini). Sau đó dùng hàm unserialize() để để chuyển

nó thành mảng và đưa vào biến global.

global $languages;

$file = 'vi.ini';

$content = file_get_contents($file);

Page 9: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn

$content = unserialize($content);

$languages = $content;

D. Đa ngôn ngữ cho database (Categories)

1. ID của Category trong các ngôn ngữ trong hệ thống không cần giống nhau

1.1. Table [Categories]

1.2. Hiển thị danh sách category

English:

Việt Nam:

Page 10: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn

1.3. Form nhập liệu:

2. ID của Category trong các ngôn ngữ trong hệ thống bắt buộc phải giống nhau

Page 11: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn

2.1. Table [Categories_2]

2.2. Table [Categories_meta]

2.3. Form nhập liệu

Page 12: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn

E. Đa ngôn ngữ cho database (Article)

Page 13: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn

1. Table [articles]

2. From nhập liệu 1 (ID của category giống nhau)

Page 14: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn

3. From nhập liệu 1 (ID của category không giống nhau)

Page 15: Giải pháp toàn diện cho Multi Language

Hội thảo: Giải pháp toàn diện cho Multi Language Speaker: KhanhPham

Đào tạo lập trình trực tuyến ZendVN Wesbite: http://www.zend.vn