Guide to PHP Translation and Website Internationalization

more

Yee

Aug 03, 2024

cover-img

PHP Translation and Website Internationalization

The translation needs of PHP files usually arise in websites and web applications to achieve multilingual support. This allows the website to display corresponding content based on the user's language preference.

Translation and Project Practice

We have successfully implemented website internationalization in multiple projects, and below is a solution we have used.

First, we chose O.Translator to complete the translation of PHP files, and its specific usage will be briefly introduced later.

O.Translator is an online document translation platform that supports PHP file translation and can translate into more than 70 languages worldwide.

By using O.Translator, we can directly translate PHP files into multiple target languages and then dynamically load them in the project based on the user's selected language, thereby achieving multilingual support for the website.

Here is the specific implementation plan:

Directory Structure

Assume your project directory structure is as follows:

project_root/
├── index.php
├── example.en.php
├── example.cn.php
├── example.fr.php

Create Copy Files

Create and edit a PHP static copy file in one language, here we take Chinese as an example.

example.cn.php

Translate into Other Languages

Visit O.Translator Homepage.

Click the start translation button to complete the login.

O.Translator

Upload the file, select the language as needed, and click start translation.

O.Translator

Wait for the translation to complete to get the translation in the target language.

O.Translator

example.en.php

O.Translator provides a free preview, translating a portion of the content for users to reference. If satisfied with the results, users can pay points to translate the remaining content.

This is one of the reasons we chose O.Translator: You never have to pay for unsatisfactory products.

Main file (index.php)

In the main file index.php, load the corresponding language file based on the user's language selection.

<?php

 // ...

$lang = isset($_GET['lang']) ? $_GET['lang'] : 'en';

switch($lang) {
    case 'en':
        include('example.en.php');
        break;
    case 'cn':
        include('example.cn.php');
        break;
    case 'fr':
        include('example.fr.php');
        break;
    default:
        include('example.en.php');
        break;
}

 // ...

?>

Use the following in the HTML template:

<!DOCTYPE html>
<html lang="<?php echo $lang; ?>">
  <head>
    <meta charset="UTF-8" />
    <title><?php echo $_['heading_home']; ?></title>
  </head>
  <body>
    <header>
      <h1><?php echo $_['heading_home']; ?></h1>
      <nav>
        <ul>
          <li><?php echo $_['heading_about']; ?></li>
          <li><?php echo $_['button_read_more']; ?></li>
        </ul>
      </nav>
    </header>
  </body>
</html>

Additional notes

  • Get user language selection

Here, it is assumed that the user's language choice is obtained through a GET parameter (e.g., ?lang=en). You can also use other methods, such as session, cookie, or browser language preferences.

  • Performance issues

If multiple PHP files are frequently loaded and parsed, there may be some performance overhead.

  • Scalability

When there are a large number of languages or text content, managing multiple language files can become complex.

Topic

scenario

scenario

Published Articles7

Recommended Reading