localization_generator 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/USAGE CHANGED
@@ -2,8 +2,10 @@ NAME
2
2
  localization - rails localization generator
3
3
 
4
4
  SYNOPSIS
5
- ruby script/generate localization
6
-
5
+ ruby script/generate localization class_name
6
+
7
+ Good names are Localization, LocalizationSettings.
8
+
7
9
  DESCRIPTION
8
10
  This generator installs a module, as originally implemented in RForum,
9
11
  for localization of strings.
@@ -21,4 +23,4 @@ EXAMPLE
21
23
  via the variable 'default_lang.' The value should be the prefix of the
22
24
  .yaml file in the lang directory.
23
25
 
24
- That's it! Thanks to Andreas Schwarz for the code.
26
+ That's it! Thanks to Andreas Schwarz for the code.
@@ -12,6 +12,13 @@ class LocalizationGenerator < Rails::Generator::NamedBase
12
12
 
13
13
  # Configuration
14
14
  m.template "localization_environment.rb", "config/environments/#{file_name}_environment.rb"
15
+
16
+ # Tests
17
+ m.template "localization_test.rb", "test/unit/#{file_name}_test.rb"
18
+ m.template "lang.yaml", "lang/#{plural_name}.yaml"
19
+
20
+ m.template "README", "README_#{class_name.upcase}"
15
21
  end
16
22
  end
17
23
  end
24
+
data/templates/README ADDED
@@ -0,0 +1,51 @@
1
+ == Installation
2
+
3
+ After generating the login system, open your application.rb controller.
4
+ The beginning of your ApplicationController should look something like this:
5
+
6
+ require '<%= singular_name %>'
7
+
8
+ class ApplicationController < ActionController::Base
9
+ include <%= class_name %>
10
+
11
+ Additionally, you'll need to includes this module as appropriate to use it
12
+ elsewhere, such as in your views. You also need to add the following at the end
13
+ of your config/environment.rb file:
14
+
15
+ require 'environments/<%= singular_name %>_environment'
16
+ require '<%= singular_name %>'
17
+ <%= class_name %>::load_localized_strings
18
+
19
+ Under the 'enviroments' subdirectory, you'll find <%= singular_name %>_environment.rb.
20
+ Edit this file as necessary...
21
+
22
+ == Requirements
23
+
24
+ You need to put your translations in the files lang/[language].yaml. Then, the
25
+ :default_language => [language] configuration variable will ensure that the
26
+ appropriate file is loaded.
27
+
28
+ == How to use it
29
+
30
+ When you want a localized string such as "localized_hello", simply create a new
31
+ entry in all supported lannguage YAML files of the form:
32
+
33
+ In en.yaml:
34
+
35
+ localized_hello: hello
36
+
37
+ In sp.yaml:
38
+
39
+ localized_hello: hola
40
+
41
+ Then in your code, you assign the string as follows:
42
+
43
+ str_var = l(:localized_hello)
44
+
45
+ In the environments/<%= singular_name %>_environment file, set the
46
+ configuration variable :default_language to either 'en' or 'sp.' That's it!
47
+
48
+ == Changelog
49
+
50
+ 1.0.1 Fixed a few problems, including with test suite
51
+ 1.0.0 First gem release
@@ -0,0 +1,2 @@
1
+ available_forums: Available forums
2
+ registration_email_sent: Email was sent to %s
@@ -19,10 +19,15 @@ module <%= class_name %>
19
19
  arguments = symbol
20
20
  symbol = arguments.shift
21
21
  end
22
-
23
- translation = (LOCALIZED_STRINGS[language][symbol] or
24
- LOCALIZED_STRINGS['en'][symbol] or
25
- symbol.to_s)
22
+
23
+ begin
24
+ translation = (LOCALIZED_STRINGS[language][symbol] or
25
+ LOCALIZED_STRINGS['en'][symbol] or
26
+ symbol.to_s)
27
+ rescue
28
+ translation = symbol.to_s
29
+ end
30
+
26
31
  begin
27
32
  return translation % arguments
28
33
  rescue => e
@@ -0,0 +1,47 @@
1
+ #!/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../test_helper'
4
+
5
+ class <%= class_name %>Test < Test::Unit::TestCase
6
+
7
+ include <%= class_name %>
8
+
9
+ # TODO: shouldn't use production data for tests
10
+ # require File.dirname(__FILE__) + '/../test_helper'
11
+ TRANSLATION_TABLE = LOCALIZED_STRINGS['<%= plural_name %>']
12
+ CONFIG[:default_language] = '<%= plural_name %>'
13
+
14
+ def test_normal_translation
15
+ assert_equal TRANSLATION_TABLE[:available_forums], l(:available_forums)
16
+ end
17
+
18
+ def test_unknown_string
19
+ assert_equal 'test_symbol_that_has_no_traslation', l(:test_symbol_that_has_no_traslation)
20
+ end
21
+
22
+ def test_with_arguments
23
+ assert_match /an argument/, l(:registration_email_sent, 'an argument')
24
+ end
25
+
26
+ def test_missing_an_expected_argument
27
+ assert_raise (ArgumentError) { l(:registration_email_sent) }
28
+ end
29
+
30
+ def test_arguments_as_array
31
+ assert_match /an argument/, l([:registration_email_sent, 'an argument'])
32
+ end
33
+
34
+ def test_arguments_empty_array
35
+ assert_raise(ArgumentError) { l([]) }
36
+ end
37
+
38
+ def test_array_and_arguments
39
+ assert_raise(ArgumentError) { l([:registration_email_sent, 'an argument'], 'some more arguments') }
40
+ end
41
+
42
+ def test_LString_to_s
43
+ # was a silly bug
44
+ assert_nothing_raised { LString.new(:registration_email_sent, 'an argument').to_s }
45
+ end
46
+
47
+ end
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.8.8
3
3
  specification_version: 1
4
4
  name: localization_generator
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.0
6
+ version: 1.0.1
7
7
  date: 2005-04-19
8
8
  summary: "[Rails] Localization generator."
9
9
  require_paths:
@@ -29,9 +29,12 @@ authors:
29
29
  - Joe Hosteny
30
30
  files:
31
31
  - USAGE
32
+ - templates/README
32
33
  - localization_generator.rb
33
34
  - templates/localization.rb
34
35
  - templates/localization_environment.rb
36
+ - templates/localization_test.rb
37
+ - templates/lang.yaml
35
38
  test_files: []
36
39
  rdoc_options: []
37
40
  extra_rdoc_files: []