`
hideto
  • 浏览: 2666761 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

每天一条Ruby小道之国际化

    博客分类:
  • Ruby
阅读更多
字符串和正则表达式与国际化关系紧密,utf-8可以让我们轻松搞定国际化问题
关于Unicode和utf-8入门,请看深入了解字符集和编码


Internally, a string is just a series of bytes.
在系统内部,字符串只是一个字节序列。


字符串本身不知道如何解析,它必须根据外部标准(编码)来决定如何解析。

一个字节不与一个字符一一对应。

Ruby有一个全局变量叫$KCODE,它有如下值:
a A   ASCII
n N   NONE (ASCII)
e E   EUC
s S   SJIS
u U   UTF-8
默认情况下$KCODE的值为n,即ASCII编码,把字符串当成单字节序列来处理
我们想让Ruby使用utf-8来处理字符串和正则表达式的话,只需要将$KCODE设为u即可
另外Ruby自带了jcode库,我们require 'jcode'后,在$KCODE为"u"时可以使用String的jsize来得到中文字数

而Rails使用utf-8编码请参考但愿这个帖子能终结所有rails中文问题
使用Gettext进行I18N和L10N则请参考使用工具gettext -- 将Rails框架应用软件中文化
分享到:
评论

相关推荐

    Ruby-FastGettextRuby国际化工具

    FastGettext就是其中一款高效的Ruby国际化工具,它以其内存占用小、命名空间简洁以及线程安全性等特性,深受开发者喜爱。下面将详细介绍FastGettext的主要功能、用法及其优势。 1. **主要功能** FastGettext提供...

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

    Ruby-i18n是Ruby语言中的一个核心库,专门用于实现国际化(Internationalization,简称i18n)和本地化(Localization,简称l10n)功能。在软件开发过程中,尤其是在面向全球用户的应用中,i18n和l10n是至关重要的,...

    Ruby自动化脚本实现网络拓扑映射

    从给定的文件信息来看,标题、描述及标签均指向了“Ruby自动化脚本实现网络拓扑映射”这一主题,然而,实际的部分内容却似乎与自动化脚本或网络拓扑映射没有直接关联,而更像是一个自动化操作的脚本示例,可能用于...

    开放Ruby+watir 自动化测试工具介绍+安装说明

    Ruby和Watir(Web Application Testing in Ruby)是一个强大的自动化测试框架,主要用于Web应用程序的测试。Ruby是一种面向对象的、动态的编程语言,以其简洁、优雅的语法和强大的元编程能力而受到开发者的喜爱。...

    ruby 自动化框架watir

    Ruby 自动化框架Watir(Web Application Testing in Ruby)是一个强大的工具,专为进行Web应用程序的端到端测试而设计。这个框架允许开发者使用Ruby语言编写测试脚本,与浏览器进行交互,模拟真实用户的行为,从而...

    Ruby-Kashmir是一个RubyDSL使得序列化和缓存对象易如反掌

    Ruby-Kashmir是一个专门为Ruby开发者设计的Domain Specific Language(DSL),它的主要目标是简化对象的序列化和缓存过程。通过这个库,开发者可以方便地管理和存储他们的数据,提高应用程序的性能,尤其是在处理...

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby-FastJSONAPI一个用于Ruby对象的快速JSONAPI的序列化器

    Ruby FastJSONAPI 是一个专为Ruby对象设计的高性能JSON:API序列化库。它旨在帮助开发者以简洁、高效的方式将Ruby对象转换为符合JSON:API规范的JSON格式,极大地提高了开发效率和应用程序的性能。 JSON:API是一个...

    ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码

    ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码

    Ruby-Blender一个模块化的远程命令执行框架

    Ruby-Blender,作为一个模块化的远程命令执行框架,是Ruby开发者和DevOps工程师的利器。它旨在简化和自动化跨服务器的工作流,通过提供一套基础的原语,使得在多服务器环境中的任务执行变得更加高效和灵活。在了解...

    Ruby-twittercldrrbICU的Ruby实现

    Ruby-twittercldrrb是基于ICU(International Components for Unicode)的一个Ruby库,主要用于处理国际化(i18n)和本地化(l10n)任务。这个库为Ruby开发者提供了一套强大的工具,用于在应用程序中实现多语言支持...

    Ruby-Rack一个模块化的Ruby服务器接口

    Rack提供了一个最小化,模块化和适应性强的界面,用于在Ruby中开发Web应用程序。 通过以最简单的方式包装HTTP请求和响应,它将Web服务器,Web框架和软件(所谓的中间件)之间的API统一并提炼成单个方法调用。

    Ruby-一个Ruby的例子

    首先,Ruby的面向对象特性是其核心之一。在Ruby中,一切都是对象,包括基本数据类型如数字、字符串和布尔值。例如,当你在Ruby中写下"hello",它实际上是一个String对象,你可以调用方法在它上面操作,如`"hello"....

    Ruby-Yard是一款Ruby文档工具

    它的核心特性在于提供了一种简洁而强大的方式来解析Ruby代码中的注释,将这些注释转化为结构化的文档,使得代码的可读性和可维护性大大提升。 Yard的工作原理是通过解析Ruby源码,识别出特定格式的文档注释(例如`#...

    Ruby-ferry一个数据迁移和可视化的命令行Rubygem

    Ruby Ferry 是一个专门为 Ruby 开发者设计的数据迁移和可视化工具,它作为一个命令行 Rubygem 提供服务。在软件开发过程中,特别是在数据库管理方面,数据迁移是必不可少的环节,它允许开发者在不同版本的数据库结构...

    Ruby-Rubrowser一个交互式可视化ruby代码依赖图的工具

    Ruby Rubrowser是一款强大的工具,专为Ruby开发者设计,用于交互式可视化代码的依赖关系。它通过解析Ruby代码,提取出其中的模块定义、类和模块的使用情况,然后利用D3(Data-Driven Documents)库将这些信息以有向...

    Ruby编程,Ruby编程,

    1. **简洁明了的语法**:Ruby的设计理念之一是使代码易于阅读和编写,这使得Ruby的语法非常简洁,同时保留了足够的表达力。 2. **面向对象编程**:Ruby是一门完全面向对象的语言,所有事物都是对象,包括基本数据...

    ruby-on-lambda, 自动化脚本,帮助运行 ruby 2.1程序.zip

    ruby-on-lambda, 自动化脚本,帮助运行 ruby 2.1程序 上的 ruby为什么?因为:AWS的Lambda具有巨大的潜在意义和有趣的含义AWS的Lambda还没有正式支持 ruby,因为ruby 具有巨大的潜在意义和有趣的含义 !?通过:将一...

    Ruby-Money一个Ruby库来处理货币和货币转换

    Ruby-Money库是一个专门为Ruby编程语言设计的强大工具,它专注于处理货币相关的运算和货币转换。这个库被广泛用于需要精确管理货币数据的应用程序,比如电子商务、财务系统或者任何涉及金融交易的项目。在Ruby社区中...

Global site tag (gtag.js) - Google Analytics