Current Location: Home> Latest Articles> Dynamically set the language package key-value structure

Dynamically set the language package key-value structure

M66 2025-06-06

How to dynamically set the key-value structure of a language package using PHP array_fill_keys?

In multilingual websites or application development, it is usually necessary to create language packs (language files) for different languages. These language packs exist in the form of key-value pairs, where keys represent identifiers of text and values ​​represent specific translation content. PHP provides a variety of ways to handle these language packs, and array_fill_keys is one of the very practical functions that helps us generate arrays of key-value pairs on a dynamic basis. This article will explore how to use array_fill_keys to dynamically set the key-value structure of a language pack.

What is array_fill_keys ?

array_fill_keys is a function in PHP that can generate a new associative array based on a given key array and a value. It accepts two parameters:

  1. keys : an array containing keys.

  2. value : The value to be filled, all generated keys will correspond to this value.

For example, using array_fill_keys to fill in the structure of a language package, you can dynamically generate a language package template based on the existing key list.

Basic usage of array_fill_keys

Suppose we have a simple language package structure that contains key-value pairs, for example:

  • `'welcome' => 'Welcome'

  • 'login' => 'Login'

  • 'register' => 'register'`

We want to generate these key-value pairs dynamically via array_fill_keys . First, take a look at the code example:

 <?php
$keys = ['welcome', 'login', 'register'];
$value = 'Not translated';  // default value

$lang = array_fill_keys($keys, $value);

print_r($lang);
?>

After executing the above code, an array will be generated, and all keys correspond to 'untranslated' , and the output is as follows:

 Array
(
    [welcome] => Not translated
    [login] => Not translated
    [register] => Not translated
)

This method is very suitable for creating a preliminary language package structure for multilingual applications, after which we can gradually replace the corresponding values ​​as needed.

Use array_fill_keys to set up the language package structure

Suppose we want to create a language package dynamically and populate it according to different languages. We can first initialize the structure of the language package through array_fill_keys , and then replace the values ​​of each key according to the language switching.

Example: Create a multilingual supported language package

Let's assume that the website has two languages: English (en) and Chinese (zh), here is an example of how to use array_fill_keys to initialize a language package template and dynamically populate content in different languages:

 <?php
// Language keys
$keys = ['welcome', 'login', 'register'];

// Initialize the language pack structure,All values ​​are 'Not translated'
$lang_en = array_fill_keys($keys, 'Not Translated');
$lang_zh = array_fill_keys($keys, 'Not translated');

// Dynamically populate content according to language
$lang_en['welcome'] = 'Welcome';
$lang_en['login'] = 'Login';
$lang_en['register'] = 'Register';

$lang_zh['welcome'] = 'welcome';
$lang_zh['login'] = 'Log in';
$lang_zh['register'] = 'register';

// Print English and Chinese language packs
echo "English Language Pack:\n";
print_r($lang_en);

echo "\nChinese Language Pack:\n";
print_r($lang_zh);
?>

In the above code, we first initialize a language package structure with the default value of 'untranslated' using array_fill_keys . Then, the corresponding key-value pairs are dynamically modified according to the translation content of different languages. Finally, we got two language packs: English and Chinese.

Output result:

 English Language Pack:
Array
(
    [welcome] => Welcome
    [login] => Login
    [register] => Register
)

Chinese Language Pack:
Array
(
    [welcome] => welcome
    [login] => Log in
    [register] => register
)

Use array_fill_keys to dynamically set language packages with URLs

If your website or application has a lot of text that needs to be linked, and the links to these texts may vary according to different languages, array_fill_keys can also help you dynamically process language packs with URLs.

Suppose we have a link that needs to change the domain name according to the language, and you can do it like this:

 <?php
// Language keys
$keys = ['homepage', 'about_us', 'contact'];

// Initialize the language pack structure,All values ​​are默认 URL
$lang_en = array_fill_keys($keys, 'http://example.com');
$lang_zh = array_fill_keys($keys, 'http://example.com');

// Dynamic filling according to language URL
$lang_en['homepage'] = 'http://m66.net/en/home';
$lang_en['about_us'] = 'http://m66.net/en/about';
$lang_en['contact'] = 'http://m66.net/en/contact';

$lang_zh['homepage'] = 'http://m66.net/zh/home';
$lang_zh['about_us'] = 'http://m66.net/zh/about';
$lang_zh['contact'] = 'http://m66.net/zh/contact';

// Print English and Chinese language packs的 URL
echo "English Language Pack URLs:\n";
print_r($lang_en);

echo "\nChinese Language Pack URLs:\n";
print_r($lang_zh);
?>

In the above code, we first initialize a language package structure containing the URL, and then modify the domain name part of the URL according to different languages. All URLs have been replaced with m66.net domain names.

Output result: