`
peryt
  • 浏览: 55654 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论
  • waiting: 既然都指定了dataType为'script'那就不必特别在b ...
    jQuery

I18n,自动使你的网站具有多种语言

阅读更多
国际化(i18n)是rails2.2引入的新的特征,这一节我们演示如何使用他使你的网站自动具有多种语言。

当用户注册的时候,我们想使他们可以选择使用哪种语言,在此,我们让他们可以选择english 还是 wookieespeak。

我们使用Restful Authentication plugin来作为我们的用户管理模块。然后,在他的注册页面,我们添加一个field到User模型,叫做language,而且有一个dropdown field让用户可以选择他们喜欢的语言。

具体步骤如下:
ruby script/plugin install git://github.com/technoweenie/restful-authentication.git
ruby script/generate authenticated user sessions
第一步是安装插件,
第二步是生成文件,user是model的名称,这一步也会创建两个controller, 一个users,一个sessions。

搞定,现在我们可以打开注册页面了,
http://127.0.0.1:3000/signup    (为什么有这个route呢,自己去看config/routes.rb把)

我们需要给我们的user模型增加一个字段叫做lang,然后往user的new view中增加一个select box,让用户注册新用户的时候,可以选择语言。

首先在后台,ruby script/generate migration add_lang_col, 添加一个migration, 然后编辑这个migration:
  def self.up
    add_column :users, :lang, :string
  end
  def self.down
    remove_column :users, :lang
  end

然后在后台运行, rake db:migration, 在数据库中的users表中添加这个字段。

然后就要编辑new.html.erb, 添加如下代码:
<p><%= f.label :lang, "Language" %>
<%= f.select :lang, [['English', 'en'], ['Wookieespeak', 'wk']] %></p>

搞定,现在刷新我们的http://127.0.0.1:3000/signup, 就可以看到selectbox了。



2. 下面我们将要具体实现多语言的内部逻辑了
首先如果你使用的rails2.2 以上的版本,去config目录下面找locales文件夹,我们的网站要支持的各种语言的文件都将放在这里。每一种语言的文本都会存储在一个ymal文件中,现在已经有了一个en.ymal文件范本了。

要支持多种语言,我们首先要复制我们要翻译的语言到en.yml 文件。
en:
  welcome:
    title: "Welcome"
    paragraph: "Thank you for visiting our store."
  products:
    title: "Products"
    releaser: "Released"

下面就要创建wk版本yaml文件了:
  welcome:
    title: "Wyah"
    paragraph: "Wyaaaa, ruh, ruh, huwaa, muaa."
  products:
    title: "Mauhwaa"
    released: "Ruhha"




分享到:
评论

相关推荐

    vue项目中基于i18n的多语言的中文提取与写入的工具.zip

    这个压缩包“vue项目中基于i18n的多语言的中文提取与写入的工具.zip”似乎包含了一个名为“i18n-collect-cli-master”的项目,它可能是一个命令行工具,用于帮助Vue项目自动收集和管理中文翻译。 Vue-i18n 工作原理...

    jquery.i18n.properties-min-1.0.9.js文件下载

    总结来说,jQuery i18n Properties Minified 1.0.9.js是一款强大且实用的前端国际化工具,它简化了多语言网站的开发流程,提高了用户体验,是现代Web应用中不可或缺的一部分。对于那些致力于打造全球化网站的开发者...

    国际化-i18n

    国际化(i18n)是软件开发中的一个重要概念,它指的是使软件能够适应不同语言和地区的过程。这个术语“i18n”是由“internationalization”这个单词的首字母和中间的18个字母组成的,意在简洁地表示这个复杂的主题。在...

    jquery-i18n-properties-1.0.9.js

    《jQuery i18n Properties 1.0.9:实现多语言支持的关键库》 在Web开发中,为用户提供多语言支持是至关重要的,尤其是在全球化的互联网环境中。jQuery i18n Properties 1.0.9 是一个专门针对这一需求而设计的...

    前端国际化插件i18n

    前端国际化插件i18n是为了解决网站或应用在多语言环境下展示内容的问题。在互联网全球化的大背景下,为了满足不同国家和地区用户的语言需求,前端开发者需要将应用的文本内容进行本地化处理,这就是“国际化”(i18n...

    jquery.i18n.properties在asp.net里的应用

    总结来说,jQuery.i18n.properties 插件与 ASP.NET 结合,为开发者提供了方便的前端国际化解决方案,使多语言网站的开发变得更加高效。通过合理地组织资源文件,设置好回调函数,以及实现语言切换机制,就能轻松实现...

    基于i18n国际化微服务统一处理错误码

    通过结合SpringBoot框架和i18n(国际化)技术,我们可以实现错误信息的多语言支持,让错误信息能够适应不同的用户群体。 首先,让我们来深入理解SpringBoot。SpringBoot是Spring框架的一个子项目,它简化了创建独立...

    前端开源库-koa-i18n

    Koa-i18n 是一个专为 Koa 框架设计的轻量级国际化中间件,它基于 i18n-2 库,旨在帮助开发者快速、方便地在前端应用中实现多语言支持。在开发面向全球用户的 web 应用时,提供多种语言版本是非常重要的,Koa-i18n ...

    i18n_jquery.zip

    "i18n_jquery.zip"这个压缩包,提供了一个基于jQuery的i18n解决方案示例,它能够帮助开发者轻松地将网站或应用程序翻译成多种语言,以适应不同地区的用户需求。本文将详细介绍jQuery_i18n的原理和应用。 首先,i18n...

    i18n tools for cocoscreator and layabox

    《CocosCreator与Layabox的多语言i18n工具应用详解》 在游戏开发领域,为了满足全球玩家的需求,支持多语言是至关重要的。CocosCreator和Layabox作为流行的2D游戏开发引擎,提供了强大的开发工具,但默认情况下并不...

    Java i18n的简单实现

    Java i18n(Internationalization,国际化)是Java平台提供的一种强大的支持多语言环境的机制。这个技术使得软件能够根据用户的地区和语言习惯进行本地化显示。在Java中,i18n通常通过资源包(Resource Bundle)来...

    前端项目-vue-i18n.zip

    Vue.js的国际化插件——Vue-i18n是前端开发者在构建多语言应用时不可...解压“前端项目-vue-i18n.zip”,深入学习“vue-i18n-master”中的示例代码,将帮助你更好地理解和运用Vue-i18n,为你的多语言前端项目带来便利。

    jquery-i18n-properties-1.2.1

    《jQuery i18n Properties: 实现多语言功能的开源脚本详解》 在Web开发中,为了满足全球用户的需求,网站和应用通常需要提供多语言支持。这涉及到国际化(i18n)和本地化(l10n)的过程。jQuery i18n properties...

    spring boot国际化 i18n

    Spring Boot的国际化(i18n)功能使得开发者可以轻松地为应用程序提供多语言支持,以便用户可以根据他们的偏好选择不同的语言界面。以下是对这个主题的详细讲解。 首先,我们需要了解i18n这个术语,它是...

    Flutter+getX+I18n示例

    I18n则是一个用于处理多语言支持的框架,它允许开发者轻松地为应用程序添加不同语言的支持。 **1. Flutter基础知识** Flutter的核心是其声明式UI框架,它允许开发者通过Dart语言创建丰富的、高性能的用户界面。GetX...

    angular国际化i18n

    Angular 国际化(i18n)是 Angular 框架提供的一项功能,它使得开发者能够轻松地构建多语言应用,以适应全球化的市场需求。在本文中,我们将深入探讨 Angular i18n 的核心概念、工作原理以及如何在实际项目中实现这一...

    优雅集成i18n实现国际化信息返回.zip

    优雅集成i18n实现国际化信息返回是SpringBoot框架中一个重要的功能,它使得应用程序能够支持多语言环境,为全球用户提供更加友好的交互体验。在SpringBoot中,i18n(Internationalization)通常通过资源文件来实现,...

    wxPython_i18n.zip

    在 Python 中,gettext 模块是用于处理多语言支持的标准库,它遵循 GNU gettext 工具的规范。这个教程将教你如何结合使用 wxPython 和 gettext 来创建能够支持多种语言的应用程序。 首先,了解基本概念:国际化通常...

    jquery-i18n-properties.rar

    总的来说,jQuery i18n Properties 是一个强大且易用的前端国际化解决方案,它极大地简化了多语言应用的开发流程,使开发者能专注于业务逻辑,而不是语言处理的复杂性。通过合理的配置和使用,开发者可以快速地实现...

    基于SpingMvc i18n demo

    SpringMvc的i18n功能通过配置MessageSource、LocaleResolver和Interceptor来实现多语言支持,为开发者提供了极大的便利。只需维护好资源文件,就能轻松构建全球化Web应用。在实际项目中,可以根据需求调整配置,以...

Global site tag (gtag.js) - Google Analytics