PHP 变量或 JSON 本地化以及如何检索它们

标签 php mysql json localization

我想实现本地化。一旦我获得了语言代码,例如 en,检索文本的最佳方式是什么?例如:

en:
    welcome-text = "Hello!"
es:
    welcome-text = "Hola!"

还有,什么是最有效、最快的方法?我应该将它们存储在 php 变量中,并通过数组或 switch 语句中的 php 变量获取文本,还是应该将它们存储为 json 并通过 json 获取它们?

最佳答案

如果您没有使用某些框架(大多数框架都有翻译功能,我真的建议您使用一个),我建议您使用数组作为翻​​译文件。这是一种简单快捷的方法:

en.php

<?php return array(
    'Welcome' => 'Welcome',
    ...
);

es.php

<?php return array(
    'Welcome' => 'Holla',
    ...
);

lang.php

<?php
$mapping = require($_SESSION['user-lang-code'].'.php');

funciton _t($text)
{
   global $mapping;
   return isset($mapping[$text])?$mapping[$text]:$text;
}

您的页面:

<?php 
require 'lang.php';

echo _t('Welcome');

关于PHP 变量或 JSON 本地化以及如何检索它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40640222/

相关文章:

php - 未找到类 'Album'

php - 如何查询具有特定属性的至少 X 个结果

mysql - 如何选择带有计数的 1 列的多列

php - 仅插入第一行并忽略新条目

json - jq:如何将 jq 输出分配给变量?

json - 配置解析服务器 S3adaptor

javascript - list 图标第 1 行不是,列 : 1, 意外标记

PHP 检查它是否是一个有效的 HTML 属性

php - 'Warning : mysql_fetch_array() expects parameter 1 to be resource, boolean given in...' 但我的查询是正确的

php - Laravel 中与 AWS Sqs 队列相关的错误