`
tolys
  • 浏览: 115590 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

浅谈php国际(I18N)以及config包的使用

阅读更多

问题:

1.如何解决国际化中一系列的问题,如时间格式、时区、语言以及编码格式等(i18nv2)。

2.如何读取xml文件,以及写xml文件等一系列操作(config)。

解决方案:

1,php PEAR官方站点有一些很好用的包,对开发很有帮助,其中就有以上两个问题的解决方案,这个些包默认情况下是不被安装的,我们需要手动下载这些包,地址是http://pear.php.net/packages.php

还有一种方法是,通过php自动安装这些包,进入php安装目录运行go-pear.bat文件,按回车安装PEAR所需的文件。

安装后目录下会多出包括pear.bat等文件,然后打开一个命令行窗口,进入php所在目录,

输入命令:pear install config,包名可参照http://pear.php.net/packages.php目录下的名称。

安装完毕后php根目录下的PEAR下会多出相应的类,

国际化实例,

require_once 'I18Nv2/Language.php';

$lang = &new I18Nv2_Language('zh', 'UTF-8');

echo "Italian name for English: ",
    $lang->getName('en'), "\n";

echo "Italian name for French:  ",
    $lang->getName('cn'), "\n";
?>

使用的时候根据需要将消息文件添加到i18nv2\language\zh.php(中国)下的数组列表中,

读取的时候用  $lang->getName('key')读取文本,

$lang = &new I18Nv2_Language('zh', 'UTF-8');可以设置不同的国家,zh为中国。

2.读xml文件示例(config包xml包)

Example 37-2. Reading configuration from an XML file


<?php
require_once 'Config.php';

$conf = new Config;
$root =& $conf->parseConfig('config.xml''XML');

if (PEAR::isError($root)) {
    die('Error while reading configuration: ' $root->getMessage());
}

$settings $root->toArray();

printf('User settings: <a href="%s">%s %s</a>',
       $settings['root']['conf']['www'],
       $settings['root']['conf']['firstname'],
       $settings['root']['conf']['lastname']
       );
?>

In this example the XML file config.xml looks like this:

例子所需的xml文件

<?xml version="1.0" encoding="UTF-8"?>

<conf>
  <firstname>John</firstname>
  <lastname>Doe</lastname>

  <www>http://example.com/</www>
</conf>

不同的版本代码不尽相同,有兴趣的可以取读读PEAR源码,相信对学习PHP有所帮助.

项目需要,学习php一个多星期,本不该放到本blog上的,为了记录学习过程而。。。。。。

欢迎指正!

评论

相关推荐

    i18n.config.js

    Ambari用户管理模块汉化

    一个使用Babel将已有项目迁移到i18n多语的工具

    在IT行业中,尤其是在Web开发领域,国际化(i18n)和本地化(l10n)是必不可少的功能,尤其对于大型项目或面向全球用户的网站。"一个使用Babel将已有项目迁移到i18n多语的工具" 提供了一种解决方案,帮助开发者将现有的...

    Laravel开发-laravel-i18n

    在 Laravel 框架中,i18n(Internationalization,国际化)是实现多语言支持的关键部分。Laravel 的 i18n 功能强大且易于使用,它允许开发者为不同国家和地区的用户提供本地化的应用体验。这个项目“Laravel 5的I18N...

    i18n-globals:增加了对I18n全局变量的支持,该变量可用于对每个转换进行插值

    可以通过I18n.config.globals访问变量。 安装 将此行添加到您的应用程序的Gemfile中: gem 'i18n-globals' 然后执行: $ bundle 或将其自己安装为: $ gem install i18n-globals 用法 将全局变量添加到I18n....

    Ruby-i18nRuby的国际化和本地化的解决方案

    Ruby-i18n社区还提供了许多扩展和工具,如`i18n-tasks`用于管理翻译任务,`i18n-spec`用于测试翻译的正确性,以及`gettext_i18n_rails`等工具,它们提供了类似Gettext的翻译工作流程。 通过理解和掌握Ruby-i18n库...

    struts_I18N

    - **ActionForm和国际化**:表单验证错误消息也可以通过I18N处理,只需要在ActionForm类中定义资源包并配置即可。 4. **Struts1.x_I18N.jar的使用**: 这个压缩包中的Struts1.x_I18N.jar文件包含了Struts1.x版本...

    struts_i18n_login.rar_i18n

    "struts_i18n_login.rar_i18n" 这个标题暗示我们将会探讨如何在 Struts 1 中实现国际化登录界面。 国际化(i18n)这个名字来源于 "internationalization" 的首字母缩写,数字 "18" 是因为 "n" 之后到 "i" 之间有18...

    前端开源库-babel-plugin-i18n-id-hashing

    `babel-plugin-i18n-id-hashing` 是一个专门针对国际化(i18n)处理的Babel插件,它主要用于改善和优化React应用中使用`react-intl`库时的国际化键(ID)管理。这个插件的目的是为了解决在`react-intl`中硬编码的...

    i18n-module:用于Nuxt的i18n

    i18n用于您的Nuxt项目 链接 :blue_book: :bookmark: :busts_in_silhouette: 产品特点 与集成 自动生成路线和自定义路径 搜索引擎优化 延迟加载翻译消息 基于自动检测语言的重定向 不同语言的不同域名 使用存储...

    struts_I18N国际化

    Struts I18N 国际化是一种技术,它允许应用程序根据用户所在的地理位置或首选语言环境来显示相应的本地化内容。在Struts框架中,I18N(Internationalization)是一个关键特性,使得开发者能够轻松地创建支持多语言的...

    前端项目-ember-i18n.zip

    Ember-i18n是一个专为Ember.js框架设计的国际化插件,它使得在前端项目中实现多语言支持变得简单高效。这个压缩包“ember-i18n.zip”包含了ember-i18n的源码及其相关资源,帮助开发者轻松地在Ember应用中添加、管理...

    i18n:Ruby的国际化(i18n)库

    Ruby国际化和本地化(i18n)解决方案。 目前由@radar维护。 用法 滑轨 您将最常在Rails应用程序中使用此库。 用法的示例, 。 Ruby(无Rails) 如果要在没有Rails的情况下使用此库,则只需将i18n添加到Gemfile ...

    happy-i18n::China:根据i18n-pick源码实现

    i18n-pick提取jsx项目中的中文文案具体使用参照掘金文章安装cnpm i i18n-pick扫描./node_modules/i18n-pick/bin/i18n-pick.js scan [path]提取./node_modules/i18n-pick/bin/i18n-pick.js pick导出./node_modules/...

    vue-i18n使用步骤详解(含完整操作步骤)的源代码

    通过安装插件、创建语言资源、配置全局 i18n 实例,以及在组件中使用 `$t` 和 `$i18n` 方法,我们可以轻松地在应用中切换和使用多种语言。此外,还可以利用插槽、占位符和数量级处理等特性,以满足复杂的本地化需求...

    使用vue 国际化i18n 实现多实现语言切换功能

    特别是对于前端框架Vue.js,它已经具有支持国际化插件的能力,本文将重点介绍如何使用Vue的国际化库vue-i18n来实现多语言切换功能。 首先,我们需要创建一个名为i18n的文件夹,在此文件夹内创建三个主要文件:en.js...

    vue-i18n-trans-loader:一个配合i18n全自动生成语言库并翻译的loader

    vue-i18n-trans-loader一个配合vue-i18n自动翻译并生成语言包的库使用说明1.安装vue-i18n,并按照vue-i18n的操作指引配置好 npm install -S vue-i18n2.将src目录下的loaders拷贝到vue的src目录下3.配置好vue.config....

    i18n-nodejs:用于节点的I18n模块,出于对复杂的翻译和本地化模块的不满,我在创建该模块时考虑了简单性

    安装npm install i18n-nodejs --save用法旧/已弃用var config = {"lang" : "ar" ,"langFile" : "./../../locale.json" //relative path to index.js file of i18n-nodejs module}//init internationalization / ...

    node-i18n-example:NodeJS-国际化(i18n)

    在Node.js开发中,国际化(i18n)是一个重要的考虑因素,特别是在构建多语言支持的应用或网站时。"node-i18n-example"是一个示例项目,它演示了如何在Node.js环境中实现国际化功能。这个项目使用了npm(Node Package...

    i18n任务:针对Ruby i18n的静态分析管理翻译和本地化

    $ cp $( i18n-tasks gem-path ) /templates/config/i18n-tasks.yml config/ 复制rspec test作为套件的一部分来测试缺失和未使用的翻译(可选): $ cp $( i18n-tasks gem-path ) /templates/rspec/i18n_spec.rb ...

    dong-i18n:i18n文件(待翻译)生成器

    【dong-i18n:i18n文件(待翻译)生成器】是一个专门用于生成国际化(i18n)文件的工具,主要针对JavaScript项目。在软件开发中,i18n是一个重要的概念,代表“国际化”(Internationalization),因为“i”到“n”之间...

Global site tag (gtag.js) - Google Analytics