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 here is one of the solutions we have used.

First, we choseO.Translatorto complete the translation of PHP files, and the 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 for one language, here we take Chinese as an example.

example.cn.php

Translate into Other Languages

VisitO.Translator Homepage.

Click the start translation button and 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 target language translation.

O.Translator

example.en.php

O.Translator provides a free preview, which translates part of the content for users to reference. If satisfied with the effect, pay points to translate the remaining content.

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

Main file (index.php)

In the main fileindex.phpload 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, assume the user's language choice is obtained via GET parameters (e.g., ?lang=en). You can also use other methods, such as session, cookie, or browser language preferences.

  • Performance issues

Frequently loading and parsing multiple PHP files may have some performance overhead.

  • Scalability

When the number of languages or the amount of text is very large, managing multiple language files can become complex.

Topic

scenario

scenario

Published Articles7

Recommended Reading