test/test_i18n.rb in review-2.0.0.beta1 vs test/test_i18n.rb in review-2.0.0
- old
+ new
@@ -1,98 +1,156 @@
# -*- coding: utf-8 -*-
require 'test_helper'
-require 'review/i18n'
-
-require 'review/compiler'
-require 'review/book'
-require 'review/htmlbuilder'
+require 'review'
require 'tmpdir'
class I18nTest < Test::Unit::TestCase
include ReVIEW
- if RUBY_VERSION !~ /^1.8/ ## to avoid Travis error :-(
- def test_load_locale_yml
- Dir.mktmpdir do |dir|
- Dir.chdir(dir) do
- file = File.join(dir, "locale.yml")
- File.open(file, "w"){|f| f.write("locale: ja\nfoo: \"bar\"\n")}
- I18n.setup
- assert_equal "bar", I18n.t("foo")
- end
+ def test_load_locale_yml
+ Dir.mktmpdir do |dir|
+ Dir.chdir(dir) do
+ file = File.join(dir, "locale.yml")
+ File.open(file, "w"){|f| f.write("locale: ja\nfoo: \"bar\"\n")}
+ I18n.setup
+ assert_equal "bar", I18n.t("foo")
end
end
+ end
- def test_load_locale_yaml
- Dir.mktmpdir do |dir|
- Dir.chdir(dir) do
- file = File.join(dir, "locale.yaml")
- File.open(file, "w"){|f| f.write("locale: ja\nfoo: \"bar\"\n")}
+ def test_load_locale_yaml
+ Dir.mktmpdir do |dir|
+ Dir.chdir(dir) do
+ file = File.join(dir, "locale.yaml")
+ File.open(file, "w"){|f| f.write("locale: ja\nfoo: \"bar\"\n")}
+ assert_raise ReVIEW::ConfigError do
I18n.setup
- assert_equal "bar", I18n.t("foo")
end
end
end
+ end
- def test_load_foo_yaml
- Dir.mktmpdir do |dir|
- Dir.chdir(dir) do
- file = File.join(dir, "foo.yml")
- File.open(file, "w"){|f| f.write("locale: ja\nfoo: \"bar\"\n")}
- I18n.setup("ja","foo.yml")
- assert_equal "bar", I18n.t("foo")
- end
+ def test_load_foo_yaml
+ Dir.mktmpdir do |dir|
+ Dir.chdir(dir) do
+ file = File.join(dir, "foo.yml")
+ File.open(file, "w"){|f| f.write("locale: ja\nfoo: \"bar\"\n")}
+ I18n.setup("ja","foo.yml")
+ assert_equal "bar", I18n.t("foo")
end
end
+ end
- def test_update_foo_yaml
- Dir.mktmpdir do |dir|
- Dir.chdir(dir) do
- file = File.join(dir, "foo.yml")
- File.open(file, "w"){|f| f.write("locale: ja\nfoo: \"bar\"\n")}
- i18n = ReVIEW::I18n.new("ja")
- i18n.update_localefile(File.join(Dir.pwd, "foo.yml"))
- assert_equal "bar", i18n.t("foo")
- end
+ def test_update_foo_yaml
+ Dir.mktmpdir do |dir|
+ Dir.chdir(dir) do
+ file = File.join(dir, "foo.yml")
+ File.open(file, "w"){|f| f.write("locale: ja\nfoo: \"bar\"\n")}
+ i18n = ReVIEW::I18n.new("ja")
+ i18n.update_localefile(File.join(Dir.pwd, "foo.yml"))
+ assert_equal "bar", i18n.t("foo")
end
end
+ end
- def test_update_foo_yaml_i18nclass
- Dir.mktmpdir do |dir|
- Dir.chdir(dir) do
- file = File.join(dir, "foo.yml")
- File.open(file, "w"){|f| f.write("locale: ja\nfoo: \"bar\"\n")}
- I18n.setup("ja", "foo.yml")
- assert_equal "bar", I18n.t("foo")
- end
+ def test_update_foo_yaml_i18nclass
+ Dir.mktmpdir do |dir|
+ Dir.chdir(dir) do
+ file = File.join(dir, "foo.yml")
+ File.open(file, "w"){|f| f.write("locale: ja\nfoo: \"bar\"\n")}
+ I18n.setup("ja", "foo.yml")
+ assert_equal "bar", I18n.t("foo")
end
end
+ end
- def test_load_locale_yml_i18n
- Dir.mktmpdir do |dir|
- Dir.chdir(dir) do
- file = File.join(dir, "locale.yml")
- File.open(file, "w"){|f| f.write("ja:\n foo: \"bar\"\nen:\n foo: \"buz\"\n")}
+ def test_load_locale_yml_i18n
+ Dir.mktmpdir do |dir|
+ Dir.chdir(dir) do
+ file = File.join(dir, "locale.yml")
+ File.open(file, "w"){|f| f.write("ja:\n foo: \"bar\"\nen:\n foo: \"buz\"\n")}
+ I18n.setup
+ assert_equal "bar", I18n.t("foo")
+ assert_equal "図", I18n.t("image")
+ I18n.setup("en")
+ assert_equal "buz", I18n.t("foo")
+ assert_equal "Figure ", I18n.t("image")
+ end
+ end
+ end
+
+ def test_load_locale_invalid_yml
+ Dir.mktmpdir do |dir|
+ Dir.chdir(dir) do
+ file = File.join(dir, "locale.yml")
+ File.open(file, "w"){|f| f.write("local: ja\nfoo: \"bar\"\n")}
+ assert_raises(ReVIEW::KeyError) do
I18n.setup
- assert_equal "bar", I18n.t("foo")
- assert_equal "図", I18n.t("image")
- I18n.setup("en")
- assert_equal "buz", I18n.t("foo")
- assert_equal "Figure ", I18n.t("image")
end
end
end
+ end
- def test_load_locale_invalid_yml
- Dir.mktmpdir do |dir|
- Dir.chdir(dir) do
- file = File.join(dir, "locale.yml")
- File.open(file, "w"){|f| f.write("local: ja\nfoo: \"bar\"\n")}
- assert_raises(ReVIEW::KeyError) do
- I18n.setup
- end
- end
+ def test_custom_format
+ Dir.mktmpdir do |dir|
+ Dir.chdir(dir) do
+ file = File.join(dir, "locale.yml")
+ File.open(file, "w"){|f| f.write("locale: ja\nchapter: 第%pa章")}
+ I18n.setup("ja")
+ assert_equal "第a章", I18n.t("chapter", 1)
+
+ File.open(file, "w"){|f| f.write("locale: ja\nchapter: 第%pA章")}
+ I18n.setup("ja")
+ assert_equal "第B章", I18n.t("chapter", 2)
+
+ File.open(file, "w"){|f| f.write("locale: ja\nchapter: 第%pAW章")}
+ I18n.setup("ja")
+ assert_equal "第B章", I18n.t("chapter", 2)
+
+ File.open(file, "w"){|f| f.write("locale: ja\nchapter: 第%paW章")}
+ I18n.setup("ja")
+ assert_equal "第b章", I18n.t("chapter", 2)
+
+ File.open(file, "w"){|f| f.write("locale: ja\nchapter: 第%pR章")}
+ I18n.setup("ja")
+ assert_equal "第I章", I18n.t("chapter", 1)
+
+ File.open(file, "w"){|f| f.write("locale: ja\nchapter: 第%pr章")}
+ I18n.setup("ja")
+ assert_equal "第ii章", I18n.t("chapter", 2)
+
+ File.open(file, "w"){|f| f.write("locale: ja\nchapter: 第%pRW章")}
+ I18n.setup("ja")
+ assert_equal "第Ⅻ章", I18n.t("chapter", 12)
+
+ File.open(file, "w"){|f| f.write("locale: ja\nchapter: 第%pJ章")}
+ I18n.setup("ja")
+ assert_equal "第二十七章", I18n.t("chapter", 27)
+
+ File.open(file, "w"){|f| f.write("locale: ja\nchapter: 第%pdW章")}
+ I18n.setup("ja")
+ assert_equal "第1章", I18n.t("chapter", 1)
+
+ File.open(file, "w"){|f| f.write("locale: ja\nchapter: 第%pdW章")}
+ I18n.setup("ja")
+ assert_equal "第27章", I18n.t("chapter", 27)
+
+ File.open(file, "w"){|f| f.write("locale: ja\nchapter: 第%pDW章")}
+ I18n.setup("ja")
+ assert_equal "第1章", I18n.t("chapter", 1)
+
+ File.open(file, "w"){|f| f.write("locale: ja\nchapter: 第%pDW章")}
+ I18n.setup("ja")
+ assert_equal "第27章", I18n.t("chapter", 27)
+
+ File.open(file, "w"){|f| f.write("locale: ja\npart: Part %pRW")}
+ I18n.setup("ja")
+ assert_equal "Part 0", I18n.t("part", 0)
+
+ File.open(file, "w"){|f| f.write("locale: ja\npart: 第%pJ部")}
+ I18n.setup("ja")
+ assert_equal "第一部", I18n.t("part", 1)
end
end
end
def test_ja
@@ -134,17 +192,15 @@
end
def _setup_htmlbuilder
I18n.setup "en"
@builder = HTMLBuilder.new()
- @config = {
- "secnolevel" => 2, # for IDGXMLBuilder, HTMLBuilder
- "inencoding" => "UTF-8",
- "outencoding" => "UTF-8",
- "stylesheet" => nil, # for HTMLBuilder
+ @config = ReVIEW::Configure[
+ "secnolevel" => 2, # for IDGXMLBuilder, HTMLBuilder
+ "stylesheet" => nil, # for HTMLBuilder
"ext" => ".re"
- }
+ ]
@book = Book::Base.new(".")
@book.config = @config
@compiler = ReVIEW::Compiler.new(@builder)
@chapter = Book::Chapter.new(@book, 1, '-', nil, StringIO.new)
location = Location.new(nil, nil)
@@ -162,9 +218,17 @@
i18n = ReVIEW::I18n.new("ja")
hash = {"foo"=>"bar"}
i18n.update(hash, "abc")
i18n.locale = "abc"
assert_equal "bar", i18n.t("foo")
+ end
+
+ def test_ja_appendix_alphabet
+ i18n = I18n.new("ja")
+ i18n.update({"appendix" => "付録%pA"}, "ja")
+ assert_equal "付録A", i18n.t("appendix", 1)
+ assert_equal "付録B", i18n.t("appendix", 2)
+ assert_equal "付録C", i18n.t("appendix", 3)
end
def test_i18n_error
I18n.setup
assert_raises NotImplementedError do