Home  >  Article  >  Backend Development  >  How to implement i18n in Cakephp?

How to implement i18n in Cakephp?

黄舟
黄舟Original
2016-12-20 09:26:411048browse

It seems that there is no more detailed Chinese information on the Internet about how to use cakephp to implement i18n. It happened that I was forced to learn Chinese about the prompts in the code yesterday. I had a little experience and summarized it in a simple way.

Chinese cakephp has the following steps:

1. Use the __() function in the code.

Use the __() function where ongoing translation is required, as shown below:

Php code

__('This is the string i need to translate', true);

__('This is the string i need to translate', true);

Set the second parameter to true, so that if there is a corresponding translated entry, the translated entry will be output, otherwise the untranslated entry will be output.

2. Execute i18n task

If there is __() function in your code, you can execute i18n task to scan the code.

i18n task is to scan all __() functions in the source code, create translation indexes for the strings in __() and save these indexes in .pot files.

So how to execute i18n task?

Enter the app directory of your project with the command line

If it is a windows platform, please ensure that the PATH of the environment variable contains the bin path of php, and ensure that the cakeconsole in your cake directory also exists in the PATH of the environment variable

Execute the command cake i18n, at this time the following prompt should appear, select E

--------------------------------- ----------
I18n Shell
---------------------------------------- --
[E]xtract POT file from sources
[I]initialize i18n database table
[H]elp
[Q]uit
What would you like to do? (E/I/H/Q)
>

After the i18n task is executed, a file named default.pot should be generated in the applocale directory. Copy this file to the applocalechsLC_MESSAGES directory.

Use the pot file editing tool to translate the entries. It is recommended to use Poedit

Add the following code to appconfigcore.php:

Php code

Configure::write('Config.language', 'chs');

Configure::write('Config.language', 'chs');

Okay, this completes the simple Chinese culture project.

Many of the details will not be fully introduced due to space reasons. If you have any questions, please refer to cakephp's help documentation.

The above is the content of how to implement i18n in Cakephp. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn