# PHP i18nThis is a simple i18n class for PHP. Nothing fancy, but fast การแปล - # PHP i18nThis is a simple i18n class for PHP. Nothing fancy, but fast ไทย วิธีการพูด

# PHP i18nThis is a simple i18n cla

# PHP i18n
This is a simple i18n class for PHP. Nothing fancy, but fast, because it uses caching and it is easy to use. Try it out!

Some of its features:

* Translations in `.ini`, `.json` or `.yaml` format
* File caching
* Simple API (`L::category_stringname`)
* Built-in support for [vprintf](http://php.net/manual/en/function.vprintf.php) formatting (`L::name($par1)`)
* Automatic finding out what language to use
* Simplicity ;)

## Requirements

* Write permissions in cache directory
* PHP 5.2 (only tested with this version, it maybe runs with other versions too)
* PHP SPL extension (installed by default)

## Setup
To use the i18n class, look at the example.php. You will find there a simple tutorial for this class in the file. Otherwise follow these easy five steps:

### 1. Create language files
To use this class, you have to use ini files for the translated strings. This could look like this:

`lang_en.ini` (English)

```ini
greeting = "Hello World!"

[category]
somethingother = "Something other..."
```

`lang_de.ini` (German)

```ini
greeting = "Hallo Welt!"

[category]
somethingother = "Etwas anderes..."
```

Save both files in the directory you will set in step 4.
The files must be named like the filePath setting, where '{LANGUAGE}' will be replaced by the chosen language, e.g. 'en' or 'de'.

### 2. Include the class
```php

```

### 3. Initialize the class
```php

```

### 4. Set some settings if necessary
The possible settings are:

* Language file path (the ini files) (default: `./lang/lang_{LANGUAGE}.ini`)
* Cache file path (default: `./langcache/`)
* The fallback language, if no one of the user languages is available (default: `en`)
* A 'prefix', the compiled class name (default `L`)
* A forced language, if you want to force a language (default: none)
* The section seperator: this is used to seperate the sections in the language class. If you set the seperator to `_abc_` you could access your localized strings via `L::category_abc_stringname` if you use categories in your ini. (default: `_`)

```php

```

#### Shorthand
There is also a shorthand for that: you can set all settings in the constructor!

```php

```

The (optional) parameters are:

1. the language file path (the ini files)
2. the language cache path
3. fallback language
4. the prefix/compiled class name

### 5. Call the `init()` method to load all files and translations
Call the `init()` file to instruct the class to load the needed language file, to load the cache file or generate it if it is not available and make the `L` class available so you can access your localizations.

```php

```

### 6. Use the localizations
To call your localizations, simple use the `L` class and a class constant for the string.

In this example, we use the translation string seen in step 1.

```php

```

As you can see, you can also call the constant as a function. It will be formatted with [vprintf](http://php.net/manual/en/function.vprintf.php).

Thats it!

## How it finds out the user language
This class tries to find out the user language by generating a queue of the following things:

1. Forced language (if set)
2. GET parameter 'lang' (`$_GET['lang']`)
3. SESSION parameter 'lang' (`$_SESSION['lang']`)
4. HTTP_ACCEPT_LANGUAGE (can be multiple languages) (`$_SERVER['HTTP_ACCEPT_LANGUAGE']`)
5. Fallback language

First it will remove duplicate elements and then it will replace all characters that are not A-Z, a-z or 0-9.
After that it searches for the language files. For example, if you set the GET parameter 'lang' to 'en' without a forced language set, the class would try to find the file `lang/lang_en.ini` (if the setting `langFilePath` was set to default (`lang/lang_{LANGUAGE}.ini`)).
If this file was not there, it would try to find the language file for the language defined in the session and so on.

### How to change this implementation
You can change this 'algorithm' by extending the i18n class. You could do it like that:

```php

```

This very basic extension of the i18n class replaces the default implementation of the `getUserLangs()`-method and only uses the GET parameter 'language' and the session parameter 'userlanguage'.
You see that this method must return an array.

**Note that this example function is insecure**: `getUserLangs()` also has to escape the results or else i18n will load every file!

## Fork it!

Contributions are always welcome.
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
# PHP i18nชั้นเรื่อง i18n PHP อยู่ อะไรที่แฟนซี ได้อย่างรวด เร็ว เพราะใช้แค และใช้งานง่าย ลองคุณลักษณะบางประการ:* แปลในรูปแบบ '.ini', '.json' หรือ '.yaml'* แฟ้มแค* เรื่อง API ('L::category_stringname')* มีการสนับสนุน [vprintf] (ส่วน http://php.net/manual/en/function.vprintf.php) รูปแบบ ('L::name($par1)')* ค้นหาอัตโนมัติออกภาษาใช้* เรียบง่าย;)เขียนความต้องการ* เขียนสิทธิ์ในไดเรกทอรีการแคช* PHP 5.2 (เดียวทดสอบกับรุ่นนี้ บางทีเรียกใช้กับรุ่นอื่นเกินไป)* นามสกุล PHP SPL (ติดตั้ง โดยค่าเริ่มต้น)แทนการตั้งค่าเมื่อต้องการใช้คลา i18n ดู example.php คุณจะพบมีสอนง่ายสำหรับคลาสนี้ในแฟ้ม ทำตามขั้นตอนที่ห้ากลายเป็นอย่างอื่น:### 1. สร้างแฟ้มภาษาการใช้ระดับนี้ คุณต้องใช้แฟ้ม ini ที่สายอักขระแปล นี้อาจดูเหมือนสิ่งนี้:'lang_en.ini' (ภาษาอังกฤษ)" ' iniทักทาย = "Hello โลก"[ประเภท]somethingother = "สิ่งอื่น ๆ..."```'lang_de.ini' (เยอรมัน)" ' iniทักทาย = "ฮัลโล Welt "[ประเภท]somethingother = "Etwas anderes..."```บันทึกแฟ้มทั้งในไดเรกทอรีที่คุณจะตั้งค่าในขั้นตอนที่ 4ต้องตั้งชื่อไฟล์เช่นการตั้งค่าพาธไฟล์ ที่ '{ภาษา}' จะถูกแทนที่ ด้วยภาษาท่าน เช่น 'น้ำ' หรือ 'เด'### 2. รวมชั้น'' " php require_once 'i18n.class.php'?>```### 3. เริ่มต้นเรียน'' " php $i18n = i18n() ใหม่?>```### 4. ตั้งค่าบางอย่างถ้าจำเป็นการตั้งค่าที่เป็นไปได้คือ:* เส้นทางของแฟ้มภาษา (แฟ้ม ini) (เริ่มต้น: ' . ลัง/.ini lang_ {ภาษา}')* พาธของไฟล์ที่แค (ค่าเริ่มต้น: ' . langcache /')* ย้อนกลับภาษา ถ้าไม่มีผู้ใช้ภาษามี (ค่าเริ่มต้น: 'น้ำ')* การ 'นำหน้า' ชื่อคอมไพล์คลา (ค่าเริ่มต้น 'L')* บังคับภาษา ถ้าคุณต้องการใช้ภาษา (ค่าเริ่มต้น: ไม่มี)* ส่วน seperator: ใช้แยกส่วนในชั้นเรียนภาษา ถ้าคุณตั้ง seperator เพื่อ '_abc_' คุณสามารถเข้าถึงสายอักขระภาษาท้องถิ่นของคุณผ่าน 'L::category_abc_stringname' ถ้าคุณใช้ประเภทของ ini (ค่าเริ่มต้น: '_')'' " php $i18n -> setCachePath('./tmp/cache') $i18n -> setFilePath('./langfiles/lang/lang_{LANGUAGE}.ini') เส้นทางของแฟ้มภาษา $i18n -> setFallbackLang('en') $i18n -> setPrefix('I') $i18n -> setForcedLang('en') / / กองทัพอังกฤษ แม้ว่าผู้ใช้ภาษาอื่นได้ $i18n -> setSectionSeperator('_')?>```### ย่อมีตัวย่อว่า: คุณสามารถตั้งค่าทั้งหมดในตัวสร้าง'' " php $i18n = i18n ใหม่ ('lang_ ลัง {ภาษา} .ini', ' langcache /', 'น้ำ');?>```มีพารามิเตอร์ (ถ้ามี):1.เส้นทางแฟ้มภาษา (แฟ้ม ini)2.เส้นทางแคภาษา3. ใช้แทนภาษา4. รวบรวมคำนำหน้า/ชื่อคลา### 5. เรียกวิธีการ 'init()' ที่จะโหลดแฟ้มทั้งหมดและการแปลเรียกแฟ้ม 'init()' สอนคลาโหลดแฟ้มภาษาที่จำเป็น โหลดไฟล์แคช หรือสร้างถ้าไม่มี และทำให้ชั้น 'L' พร้อมให้คุณ localizations ของคุณ'' " php $i18n -> init()?>```### 6. ใช้ที่ localizationsโทร localizations ของคุณ ใช้คลาส 'L' และคงระดับสำหรับข้อความในตัวอย่างนี้ เราใช้แปลสายอักขระที่เห็นในขั้นตอนที่ 1'' " php echo L::greeting ถ้าใช้ 'น้ำ': 'ประเทศ' echo L::category_somethingother ถ้าใช้ 'น้ำ': ' สิ่งอื่น ๆ...' echo L::last_modified("today") อาจเป็น: "ล่าสุด: วันนี้ '?>```คุณสามารถดู คุณยังสามารถเรียกค่าคงที่เป็นฟังก์ชัน มันจะถูกฟอร์แมต ด้วย [vprintf] (ส่วน http://php.net/manual/en/function.vprintf.php)Thats มัน# วิธีมันพบภาษาของผู้ใช้เรียนพยายามค้นหาภาษาของผู้ใช้ โดยการสร้างคิวในสิ่งต่อไปนี้:1. บังคับภาษา (ถ้ากำหนด)2. รับพารามิเตอร์ 'ทองหลาง' ('$_GET['lang']')3. ช่วงพารามิเตอร์ 'ทองหลาง' ('$_SESSION['lang']')4. HTTP_ACCEPT_LANGUAGE (ได้หลายภาษา) ('$_SERVER['HTTP_ACCEPT_LANGUAGE']')5. ใช้แทนภาษาครั้งแรกมันจะเอาองค์ประกอบที่ซ้ำกัน และมันจะแทนอักขระทั้งหมดที่ไม่ใช่ A-Z, a-z หรือ 0-9หลังจากนั้น มันค้นหาแฟ้มภาษา ตัวอย่าง ถ้าคุณกำหนดพารามิเตอร์รับ 'ทองหลาง' กับ 'น้ำ' โดยไม่มีชุดภาษาที่บังคับ ชั้นจะลองเพื่อค้นหาแฟ้ม 'lang/lang_en.ini' (ถ้าตั้งค่า 'langFilePath' ถูกตั้งค่าเริ่มต้น ('lang_ ลัง {ภาษา} .ini'))ถ้าแฟ้มนี้ไม่มี มันจะพยายามหาไฟล์ภาษาสำหรับภาษาที่กำหนดในงานและ### วิธีการเปลี่ยนใช้งานนี้คุณสามารถเปลี่ยนแปลงนี้ 'อัลกอริทึม' ขยายคลาส i18n คุณสามารถทำเช่นนั้น:'' " php require_once 'i18n.class.php' คลา My_i18n ขยาย i18n { {getUserLangs() ฟังก์ชันสาธารณะ $userLangs = array() ใหม่ [$userLangs] = $_GET ['ภาษา']; [$userLangs] = $_SESSION ['userlanguage']; $userLangs กลับ } } $i18n = My_i18n() ใหม่ // [...]?>```ส่วนขยายนี้มากของคลา i18n แทนใช้งานเริ่มต้นของ '() getUserLangs'-วิธี และใช้เฉพาะ รับพารามิเตอร์ 'ภาษา' และพารามิเตอร์ของเซสชัน 'userlanguage'คุณดูว่า วิธีการนี้ต้องส่งกลับอาร์เรย์** สังเกตว่า ฟังก์ชันนี้อย่างไม่ปลอดภัย **: 'getUserLangs()' มีหนีผลหรือ อื่น ๆ i18n จะโหลดทุกไฟล์# fork มันผลงานต้อนรับท่านเสมอ
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
# PHP i18n
ซึ่งเป็นระดับ i18n ง่ายสำหรับ PHP ไม่มีอะไรแฟนซี แต่อย่างรวดเร็วเพราะใช้แคชและมันเป็นเรื่องง่ายที่จะใช้ ลอง! คุณลักษณะบางอย่างของ: * การแปลใน `.ini`` `.json` หรือรูปแบบ .yaml` * แคชไฟล์* API ง่าย (` L :: category_stringname`) * Built-in การสนับสนุน [vprintf] (http://php.net/manual/en/function.vprintf.php) การจัดรูปแบบ (`L :: ชื่อ ($ par1)`) * โดยอัตโนมัติการค้นหาสิ่งที่ภาษาที่จะใช้* เรียบง่าย;) ## ความต้องการ* เขียนสิทธิ์ ในไดเรกทอรีแคช* PHP 5.2 (การทดสอบเฉพาะกับรุ่นนี้ก็อาจจะทำงานกับรุ่นอื่น ๆ ด้วย) นามสกุล * PHP SPL (ติดตั้งค่าเริ่มต้น) ## การตั้งค่าในการใช้งานระดับi18n ให้ดูที่ example.php คุณจะพบว่ามีการกวดวิชาที่เรียบง่ายสำหรับการเรียนในแฟ้มนี้ มิฉะนั้นทำตามง่ายๆเหล่านี้ห้าขั้นตอน: ### 1. สร้างไฟล์ภาษาที่จะใช้ชั้นนี้คุณต้องใช้ไฟล์INI สำหรับสตริงแปล ซึ่งอาจมีลักษณะเช่นนี้: `lang_en.ini` (อังกฤษ)` `` INI อวยพร = "Hello World!" [หมวดหมู่] somethingother = "บางสิ่งบางอย่างอื่น ... " `` `` lang_de.ini` (เยอรมัน) `` `INI อวยพร =" สวัสดีดาม! "[หมวดหมู่] somethingother =" Etwas anderes ... "` `` ประหยัดทั้งสองไฟล์ในไดเรกทอรีที่คุณจะตั้งอยู่ในขั้นตอนที่ 4 ไฟล์ต้องมีชื่อเช่นการตั้งค่า filePath ที่ '{ ภาษา} 'จะถูกแทนที่ด้วยภาษาเลือกเช่น' en 'หรือ' เดอ. ### 2. รวมชั้น`` `? php i18n.class.php 'require_once';?>` `` ### 3 . เริ่มต้นชั้น`` `? php $ i18n = i18n ใหม่ ();>?` `` ### 4. ตั้งค่าบางอย่างถ้าจำเป็นการตั้งค่าที่เป็นไปได้: * เส้นทางของไฟล์ภาษา (ไฟล์ INI) (ค่าเริ่มต้น: ` / lang / lang_ {} ภาษา .ini`) * เส้นทางของไฟล์แคช (ค่าเริ่มต้น: `/ langcache /`). * ภาษาทางเลือกหากไม่มีภาษาใดภาษาหนึ่งที่ผู้ใช้สามารถใช้ได้ (ค่าเริ่มต้น: `en`) * A 'คำนำหน้า 'ที่รวบรวมชื่อชั้น (ค่าเริ่มต้น `L`) * ภาษาบังคับถ้าคุณต้องการที่จะบังคับให้เป็นภาษา (ค่าเริ่มต้น: ไม่มี) * The seperator ส่วนนี้จะใช้ในการแยกส่วนในชั้นเรียนภาษา ถ้าคุณตั้งค่า seperator เพื่อ `_abc_` คุณสามารถเข้าถึงสตริงที่มีการแปลของคุณผ่านทาง` L :: category_abc_stringname` ถ้าคุณใช้ประเภทใน INI ของคุณ (ค่าเริ่มต้น: ภาษา // เส้นทางของไฟล์$ i18n-> setFallbackLang (en '); $ i18n-> setPrefix (' ฉัน '); $ i18n-> setForcedLang (en) // บังคับอังกฤษแม้ว่าภาษาของผู้ใช้สามารถใช้ได้อีก$ i18n-> setSectionSeperator ('_');>? `` `#### ชวเลขนอกจากนี้ยังมีชวเลขที่: คุณสามารถตั้งค่าการตั้งค่าทั้งหมดในตัวสร้าง` ``? php $ i18n = i18n ใหม่ (lang / lang_ {} ภาษา ini ของ ',' langcache / ',' en ');>? `` `(ที่ไม่จำเป็น) พารามิเตอร์: 1. เส้นทางของไฟล์ภาษา (ไฟล์ INI) 2. เส้นทางแคชภาษา3. ทางเลือก ภาษา4. คำนำหน้า / ชื่อชั้นรวบรวม### 5. โทร `init () วิธี` โหลดไฟล์ทั้งหมดและการแปลโทร`init ()` ไฟล์จะสอนในชั้นเรียนในการโหลดไฟล์ภาษาที่จำเป็นในการโหลด ไฟล์แคชหรือสร้างมันถ้ามันไม่สามารถใช้ได้และทำให้ `L` ระดับที่มีอยู่เพื่อให้คุณสามารถเข้าถึง localizations ของคุณ.` ``? php $ i18n-> init ();?> `` `### 6. ใช้ localizations . ในการเรียก localizations ของคุณใช้งานง่าย `L` ระดับและระดับคงที่สำหรับสตริงในตัวอย่างนี้เราจะใช้สตริงแปลที่เห็นในขั้นตอนที่1` `` PHP การสะท้อนL :: ทักทาย; // ถ้า 'en' ถูกนำไปใช้: 'Hello World' L ก้อง :: category_somethingother; // ถ้า 'en' ถูกนำไปใช้: 'บางสิ่งบางอย่างอื่น ... สะท้อน L :: LAST_MODIFIED ("วันนี้"); // อาจจะเป็น' แก้ไขครั้งล่าสุด: วันนี้ '> `` `ที่คุณสามารถดูคุณยังสามารถเรียกค่าคงที่เป็นฟังก์ชั่น ก็จะมีการจัดรูปแบบด้วย [vprintf] (http://php.net/manual/en/function.vprintf.php). Thats มัน! ## วิธีที่จะพบผู้ใช้ภาษาระดับนี้พยายามที่จะหาภาษาของผู้ใช้โดยการสร้างคิวในสิ่งต่อไปนี้: 1 ภาษาบังคับ (ถ้าตั้งค่า) 2 GET พารามิเตอร์ 'lang' (`$ _GET ['lang']`) 3 SESSION พารามิเตอร์ 'lang' (`$ _SESSION ['lang']`) 4 HTTP_ACCEPT_LANGUAGE (สามารถหลายภาษา) (`$ _SERVER ['HTTP_ACCEPT_LANGUAGE']`) 5 ภาษาทางเลือกครั้งแรกมันจะลบองค์ประกอบที่ซ้ำกันและจากนั้นก็จะเข้ามาแทนที่ตัวอักษรทั้งหมดที่ไม่ AZ, az หรือ 0-9. หลังจากนั้นจะค้นหาไฟล์ภาษา ตัวอย่างเช่นถ้าคุณตั้งค่าพารามิเตอร์ GET 'lang' เป็น 'en' โดยไม่ต้องมีการตั้งค่าภาษาบังคับชั้นจะพยายามที่จะหาไฟล์ `lang / lang_en.ini` (ถ้ามีการตั้งค่า` langFilePath` ถูกกำหนดให้เริ่มต้น (` lang / lang_ {} ภาษา .ini`)). ถ้าแฟ้มนี้ไม่ได้มีก็จะพยายามที่จะหาไฟล์ภาษาสำหรับภาษาที่กำหนดไว้ในเซสชั่นและอื่น ๆ . ### วิธีการเปลี่ยนการดำเนินงานนี้คุณสามารถเปลี่ยน 'อัลกอริทึม' โดยการขยายระดับอก i18n คุณสามารถทำมันเหมือนว่า: `` `? php require_once 'i18n.class.php'; My_i18n ระดับขยาย i18n {getUserLangs ฟังก์ชั่นที่สาธารณะ () {$ = userLangs แถวใหม่ (); $ userLangs [] = $ _GET ['ภาษา' ]; $ userLangs [] = $ _SESSION ['userlanguage']; กลับ $ userLangs;}} $ i18n = My_i18n ใหม่ (); // [... ]> `` `นี้ขยายพื้นฐานมากของชั้นi18n แทนที่ การดำเนินการเริ่มต้นของ `getUserLangs ()` -method และใช้เพียง GET พารามิเตอร์ 'ภาษา' เซสชั่นและพารามิเตอร์ 'userlanguage'. คุณจะเห็นว่าวิธีนี้จะต้องกลับอาร์เรย์. ** โปรดทราบว่าฟังก์ชั่นนี้เป็นตัวอย่างที่ไม่ปลอดภัย ** `getUserLangs ()` นอกจากนี้ยังมีผลที่จะหลบหนีหรืออื่น i18n จะโหลดไฟล์ทุก! ## ส้อมมัน! ผลงานยินดีต้อนรับเสมอ




































































































































































การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2024 I Love Translation. All reserved.

E-mail: