rebelox/languages

Languages 允许您轻松创建多语言网站。

1.0.0 2015-06-30 13:47 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:38:32 UTC


README

Languages 允许您轻松创建多语言网站。

它是如何工作的

当用户打开网站时,API 将使用 geoip_country_code_by_name 函数从 GeoIP API 获取用户的国家。然后 API 搜索配置文件并获取正确的语言,然后使用用户的语言,API 获取正确的消息。如果用户有语言 Cookie,API 将忽略第一步,并使用保存在 Cookie 中的用户语言获取正确的消息。

安装

使用 Composer 安装

{
    "require": {
        "rebelox/languages": "^1.0"
    }
}

您还可以 访问发布版下载

配置

首先您需要 配置 API,配置很简单,您只需要 创建两个文件,一个将是 语言文件,另一个将是 消息文件

语言文件

语言文件应该是这样的

{
  "default": "default_language",
  "lang1": "countries",
  "lang2": "countries"
}

其中

  • default 是您希望网站默认使用的语言。
  • lang1 和 lang2 是您想要定义的语言。
  • countries 是使用该语言的国家列表。

以下是一个例子

{
	"default": "pt",
	"pt" : "BR,PT,AO",
	"en" : "UK,US,AU"
}

您可能需要检查 这个列表 以查看所有 ISO-3166 国家代码。

======

消息文件

消息文件的结构

{
	"message_name":{
		"lang1":"Message in the lang1",
		"lang2":"Message in the lang2"
	}
}

其中

  • message_name 是您想要给消息取的名字,它也被称为标识符。
  • lang1 和 lang2 是您在语言文件中定义的语言。
  • Message (..) lang1 和 lang2 是相应语言中的消息。

以下是一个例子

{
	"hello":{
		"pt":"Olá mundo",
		"en":"Hello World"
	}
}

基本用法

<?php

require_once('../vendor/autoload.php');

use Language\Language;

$language = new Language(array(
	'languages_path' => __DIR__ . "/config/languages.json",
	'messages_path' => __DIR__ . "/config/messages.json"
	
));

echo $language->get('hello'); //note that the "hello" is the name of the message, a.k.a the identifier.

依赖项

要使用此 API,您需要 GeoIP 扩展
首先您需要 安装 .dll 扩展遵循此指南。然后您需要 数据库,要获取数据库,请 点击此处 并将其安装到您的 apache/bin 文件夹。

贡献

欢迎您为此 API 的改进做出贡献,只需在 GitHub 上提交问题,或者如果您想直接贡献,可以提交拉取请求。

示例

您可以在示例文件夹中找到一些示例,您可以亲自尝试。

构建测试

目前我还没有可用的构建测试,我正在努力...