i18n_po_tools 0.9.1 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YjNlYzg3ZjVlYzk0NGE0NzUwODg5NzY3OWVjYzZkNjlhZjg4ZTYxNg==
5
- data.tar.gz: !binary |-
6
- NDJlZDEzOWQ3YzBlZWMxODgzMWQ1MDk1OTdmZTM1YTg0ZTI5ODIzYQ==
2
+ SHA1:
3
+ metadata.gz: 1a3097c68e8cadfa401d32f7e661252ef25156d3
4
+ data.tar.gz: 5c5c3b02fe625a453b5dafd46dd5db890e4a163b
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- NjJhMGE0YjhjZWFlZTIzNjc3ZGRlOTZhZGZlOWNjMDhhYTBhNDJiZGI2ZTdm
10
- NzY2NzNkMjg3YTc5ZGVhNDY0YTIyYjc5YzhlMWRlMzU4MGUxMmRmNzM2NjA5
11
- OWU1MzBhNTE5MjJhMDNjZjFkZmJjZDlhNDFlNjZhNTM0NTFiOTE=
12
- data.tar.gz: !binary |-
13
- NTIwN2QzZmExNDEwNjM4NTVkMWY0ZTlmNmY2ZjNlYTk3NDM3MjYwMTFkYWFh
14
- ODY4OTk1ZWM2MmY2OGMwMWI3ZGI2YmM5ZTdlYzAwMTRhMDcxZDM4MDBkNjU2
15
- MTY1MjhmMDM1ZTY2OTVhMjQyMjhhOTQ4N2MyNWY3YzM2MDE0YmM=
6
+ metadata.gz: 5c30634239bc62560db75176d9fc00e8232fdabe259f45fcd5a50d9e4eb29a3e1830cd8a75da480bbca3a15a8a6f0bd1c079b390a65fb43cdf24ac44f889fce5
7
+ data.tar.gz: 65c7795d800cea29a921e4dab538446d0e5ed2392aacb4dc995a552ecb5fcb78d8df3eb48e48da1e5bac688b6e8fc4ac6c3a1ecd034d813650bb5731b13698ff
@@ -1,3 +1,18 @@
1
+ Changelog
2
+ ----------
3
+
4
+
5
+ TODO: 1.0.0
6
+ ==================
7
+ + Support for plural messages in rails_yaml format.
8
+ + Translate Readme.txt and Design.txt to English
9
+ + Add examples and docs for Locfile
10
+
11
+
12
+ 0.10.0 [2015-05-28]
13
+ ==================
14
+ - Output dirs autocreation.
15
+ - Added Java properties format.
1
16
 
2
17
 
3
18
  0.9.1 [2014-09-23]
data/Readme.md CHANGED
@@ -3,11 +3,12 @@
3
3
  Utils to convert translations from source formats to PO/POT Gettex and vise versa. It allows to separate translations from development of apps.
4
4
 
5
5
  Supported input/output formats:
6
- * [iOS and OS X String Resources][http://developer.apple.com/documentation/Cocoa/Conceptual/LoadingResources/Strings/Strings.html] (format: ios)
7
- * [Android String XML][http://developer.android.com/guide/topics/resources/string-resource.html] (format: android)
8
- * [Gettext PO/POT][http://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/PO-Files.html] (format:po and pot)
9
- * [Rails YAML][http://guides.rubyonrails.org/i18n.html] (format: rails-yaml)
6
+ * [iOS and OS X String Resources](http://developer.apple.com/documentation/Cocoa/Conceptual/LoadingResources/Strings/Strings.html) (format: ios)
7
+ * [Android String XML](http://developer.android.com/guide/topics/resources/string-resource.html) (format: android)
8
+ * [Gettext PO/POT](http://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/PO-Files.html) (format:po and pot)
9
+ * [Rails YAML](http://guides.rubyonrails.org/i18n.html) (format: rails-yaml)
10
10
  * Basic flat YAML (format: flat-yaml)
11
+ * [Java properties](http://en.wikipedia.org/wiki/.properties) (format: properties)
11
12
  * CVS for easy exchange with other apps (format: csv-yaml)
12
13
 
13
14
  Direct converation between any formats supported.
@@ -16,7 +17,7 @@ About design decision you can read in the Design.txt.
16
17
 
17
18
  Rails YAML and PO supports plural forms of messages. Example: 1 message, 2 messages.
18
19
 
19
- Sorry, more info only in Russian in the Readme.re.md file.
20
+ Sorry, more info only in Russian in the Readme.ru.md file.
20
21
 
21
22
 
22
23
  ## Installation
@@ -38,34 +39,34 @@ Or install it yourself as:
38
39
 
39
40
  Command: i18n-po [OPTIONS]
40
41
 
41
- Options
42
+ Options:
42
43
  -i, --input FILENAME input filename (default STDIN)
43
44
  -b, --base FILENAME base language input filename (only for po output mode)
44
45
  -o, --output FILENAME output filename (default STDOUT)
45
46
  -f, --from FORMAT input file format (default is autodetect by ext)
46
- (rails_yaml, flat_yaml, po, pot, ios, android, csv)
47
+ (rails_yaml, flat_yaml, po, pot, ios, android, properties, csv)
47
48
  -t, --to FORMAT output file format (default is autodetect by ext)
48
- (rails_yaml, flat_yaml, po, pot, ios, android, csv)
49
+ (rails_yaml, flat_yaml, po, pot, ios, android, properties, csv)
49
50
  -l, --language LANGUAGE input file language (only for po or rails_yaml output mode)
50
51
  -h, --help help
51
52
 
52
- Examples:
53
- 1) First import (generation of PO file) from Rails YAML file:
54
- i18n-po --input ~/projects/rails_app/config/locales/devise.en.yml --language en \
55
- --base ~/projects/rails_app/config/locales/devise.ru.yml \
56
- --output ~/projects/translations/rails_app/devise.en.po
53
+ Examples:
54
+ 1) First import (generation of PO file) from Rails YAML file:
55
+ i18n-po --input ~/projects/rails_app/config/locales/devise.en.yml --language en \
56
+ --base ~/projects/rails_app/config/locales/devise.ru.yml \
57
+ --output ~/projects/translations/rails_app/devise.en.po
57
58
 
58
- 2) Generation of translation template (POT file) from Rails YAML file:
59
- i18n-po --input ~/projects/rails_app/config/locales/devise.ru.yml \
60
- --output ~/projects/translations/rails_app/devise.en.pot
59
+ 2) Generation of translation template (POT file) from Rails YAML file:
60
+ i18n-po --input ~/projects/rails_app/config/locales/devise.ru.yml \
61
+ --output ~/projects/translations/rails_app/devise.en.pot
61
62
 
62
- 3) Generation of Rails YAML file from PO file:
63
- i18n-po --input ~/projects/translations/rails_app/devise.en.po --language en \
64
- --output ~/projects/rails_app/config/locales/devise.en.yml
63
+ 3) Generation of Rails YAML file from PO file:
64
+ i18n-po --input ~/projects/translations/rails_app/devise.en.po --language en \
65
+ --output ~/projects/rails_app/config/locales/devise.en.yml
65
66
 
66
- 4) Translation convertation from iOS to Android format:
67
- i18n-po --input ~/projects/ios_app/Localizable.strings \
68
- --output ~/projects/android_app/en/strings.xml
67
+ 4) Translation convertation from iOS to Android format:
68
+ i18n-po --input ~/projects/ios_app/Localizable.strings \
69
+ --output ~/projects/android_app/en/strings.xml
69
70
 
70
71
 
71
72
  ## Contributing
@@ -8,6 +8,7 @@
8
8
  * [Gettext PO/POT][http://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/PO-Files.html] (формат: po или pot)
9
9
  * [Rails YAML][http://guides.rubyonrails.org/i18n.html] (формат: rails-yaml)
10
10
  * Простой плоский формат YAML (формат: flat-yaml)
11
+ * Java properties (формат: properties)
11
12
  * CVS для упрощенного обмена с другими программами (формат: csv-yaml)
12
13
 
13
14
  Возможна прямая конвертация между любыми поддерживаемыми форматами.
@@ -41,9 +42,9 @@ Rails YAML и PO поддерживают специальный вид стро
41
42
  -b, --base FILENAME base language input filename (only for po output mode)
42
43
  -o, --output FILENAME output filename (default STDOUT)
43
44
  -f, --from FORMAT input file format (default is autodetect by ext)
44
- (rails_yaml, flat_yaml, po, pot, ios, android, csv)
45
+ (rails_yaml, flat_yaml, po, pot, ios, android, properties, csv)
45
46
  -t, --to FORMAT output file format (default is autodetect by ext)
46
- (rails_yaml, flat_yaml, po, pot, ios, android, csv)
47
+ (rails_yaml, flat_yaml, po, pot, ios, android, properties, csv)
47
48
  -l, --language LANGUAGE input file language (only for po or rails_yaml output mode)
48
49
  -h, --help help
49
50
 
@@ -15,13 +15,9 @@ Gem::Specification.new do |spec|
15
15
  Utils to convert translations from source formats to PO/POT Gettex and vise versa.
16
16
  It allows to separate translations from development of apps.
17
17
 
18
- Supported input/output formats:
19
- * iOS and OS X String Resources
20
- * Android String XML
21
- * Gettext PO/POT
22
- * Rails YAML
23
- * Basic flat YAML
24
- * CVS for easy exchange with other apps
18
+ Supported input/output formats: iOS and OS X String Resources, Android String XML,
19
+ Gettext PO/POT, Rails YAML, Basic flat YAML, Java properties,
20
+ CVS for easy exchange with other apps.
25
21
 
26
22
  Direct converation between any formats supported.
27
23
 
@@ -39,6 +35,8 @@ EOF
39
35
  spec.add_runtime_dependency "get_pomo", "= 0.9.0"
40
36
  #for blank?/present?
41
37
  spec.add_runtime_dependency "activesupport", "~> 4.1.6"
38
+ #for Java .properties file format
39
+ spec.add_runtime_dependency "java-properties", "~> 0.0.2"
42
40
 
43
41
 
44
42
  spec.add_development_dependency "bundler", "~> 1.3"
@@ -11,7 +11,7 @@ require "i18n_po_tools/core_ext/dotted_hash"
11
11
  require "i18n_po_tools/formats"
12
12
 
13
13
  module I18nPoTools
14
- FORMATS = %w[rails_yaml flat_yaml po pot ios android csv]
14
+ FORMATS = %w[rails_yaml flat_yaml po pot ios android properties csv]
15
15
 
16
16
  EXT_TO_FORMAT = {
17
17
  :yml => :rails_yaml,
@@ -19,6 +19,7 @@ module I18nPoTools
19
19
  :pot => :pot,
20
20
  :strings => :ios,
21
21
  :xml => :android,
22
+ :properties => :properties,
22
23
  :csv => :csv
23
24
  }
24
25
  end
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  require 'optparse'
2
3
 
3
4
  module I18nPoTools
@@ -15,6 +16,7 @@ module I18nPoTools
15
16
  opt.separator "* Gettext PO/POT"
16
17
  opt.separator "* Rails YAML"
17
18
  opt.separator "* Basic flat YAML"
19
+ opt.separator "* Java properties"
18
20
  opt.separator "* CVS for easy exchange with other apps"
19
21
  opt.separator ""
20
22
  opt.separator "Direct converation between any formats supported."
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  class Hash
2
3
 
3
4
  def implode(divider = '.')
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # coding: utf-8
2
2
  #
3
3
  # From:
4
4
  # https://raw.githubusercontent.com/svenfuchs/i18n/master/test/test_data/locales/plurals.rb
@@ -1,9 +1,11 @@
1
+ # coding: utf-8
1
2
  require 'i18n_po_tools/formats/base_format'
2
3
  require 'i18n_po_tools/formats/rails_yaml_format'
3
4
  require 'i18n_po_tools/formats/basic_flat_yaml_format'
4
5
  require 'i18n_po_tools/formats/po_format'
5
6
  require 'i18n_po_tools/formats/ios_format'
6
7
  require 'i18n_po_tools/formats/android_format'
8
+ require 'i18n_po_tools/formats/properties_format'
7
9
  require 'i18n_po_tools/formats/csv_format'
8
10
 
9
11
  module I18nPoTools
@@ -23,6 +25,8 @@ module I18nPoTools
23
25
  IosFormat.new
24
26
  when :android
25
27
  AndroidFormat.new
28
+ when :properties
29
+ PropertiesFormat.new
26
30
  when :csv
27
31
  CsvFormat.new
28
32
  end
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  require 'nokogiri'
2
3
 
3
4
  module I18nPoTools
@@ -1,3 +1,6 @@
1
+ # coding: utf-8
2
+ require 'fileutils'
3
+
1
4
  module I18nPoTools
2
5
  module Formats
3
6
  class BaseFormat
@@ -18,6 +21,7 @@ module I18nPoTools
18
21
  end
19
22
 
20
23
  def write_file(output_filename, data)
24
+ FileUtils.mkdir_p File.dirname(output_filename)
21
25
  if output_filename.present?
22
26
  File.open(output_filename, "w:"+file_encoding) do |f|
23
27
  f << data
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  require 'yaml'
2
3
 
3
4
  module I18nPoTools
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  require 'csv'
2
3
 
3
4
  module I18nPoTools
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  require 'i18n_po_tools/utils/ios_strings'
2
3
 
3
4
  module I18nPoTools
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  require 'get_pomo'
2
3
  require 'i18n_po_tools/utils/po'
3
4
  require 'i18n_po_tools/utils/data'
@@ -0,0 +1,21 @@
1
+ # coding: utf-8
2
+ require 'java-properties'
3
+
4
+ module I18nPoTools
5
+ module Formats
6
+ class PropertiesFormat < BaseFormat
7
+ def read(input_filename)
8
+ content = read_file(input_filename)
9
+ props = JavaProperties.parse(content)
10
+ h = {}
11
+ props.each{|key,value| h[key.to_s]=value }
12
+ h
13
+ end
14
+
15
+ def write(output_filename, data)
16
+ content = JavaProperties.generate(hash)
17
+ write_file(output_filename, content)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  require 'yaml'
2
3
 
3
4
  module I18nPoTools
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  module I18nPoTools
2
3
  class PluralMessage
3
4
 
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  require 'yaml'
2
3
 
3
4
  module I18nPoTools
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  # Format description:
2
3
  # https://developer.apple.com/library/mac/documentation/macosx/conceptual/bpinternational/Articles/StringsFiles.html
3
4
  #
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  require 'fileutils'
2
3
  require 'yaml'
3
4
 
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  #
2
3
  # Fixes for pomo gem
3
4
  #
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  module I18nPoTools
2
- VERSION = "0.9.1"
3
+ VERSION = "0.10.0"
3
4
  end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: i18n_po_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Stepin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-23 00:00:00.000000000 Z
11
+ date: 2015-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
@@ -42,85 +42,83 @@ dependencies:
42
42
  name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: 4.1.6
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 4.1.6
55
+ - !ruby/object:Gem::Dependency
56
+ name: java-properties
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.0.2
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.0.2
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: bundler
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - ~>
73
+ - - "~>"
60
74
  - !ruby/object:Gem::Version
61
75
  version: '1.3'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - ~>
80
+ - - "~>"
67
81
  - !ruby/object:Gem::Version
68
82
  version: '1.3'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rake
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - ! '>='
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
89
  version: '0'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - ! '>='
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: gem-release
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ! '>='
101
+ - - ">="
88
102
  - !ruby/object:Gem::Version
89
103
  version: '0'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ! '>='
108
+ - - ">="
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
97
- description: ! 'Utils to convert translations from source formats to PO/POT Gettex
98
- and vise versa.
99
-
111
+ description: |
112
+ Utils to convert translations from source formats to PO/POT Gettex and vise versa.
100
113
  It allows to separate translations from development of apps.
101
114
 
102
-
103
- Supported input/output formats:
104
-
105
- * iOS and OS X String Resources
106
-
107
- * Android String XML
108
-
109
- * Gettext PO/POT
110
-
111
- * Rails YAML
112
-
113
- * Basic flat YAML
114
-
115
- * CVS for easy exchange with other apps
116
-
115
+ Supported input/output formats: iOS and OS X String Resources, Android String XML,
116
+ Gettext PO/POT, Rails YAML, Basic flat YAML, Java properties,
117
+ CVS for easy exchange with other apps.
117
118
 
118
119
  Direct converation between any formats supported.
119
120
 
120
-
121
121
  Rails YAML and PO supports plural forms of messages.
122
-
123
- '
124
122
  email:
125
123
  - igor_for_os@stepin.name
126
124
  executables:
@@ -128,7 +126,7 @@ executables:
128
126
  extensions: []
129
127
  extra_rdoc_files: []
130
128
  files:
131
- - .gitignore
129
+ - ".gitignore"
132
130
  - Changelog.txt
133
131
  - Design.md
134
132
  - Design.ru.md
@@ -151,6 +149,7 @@ files:
151
149
  - lib/i18n_po_tools/formats/csv_format.rb
152
150
  - lib/i18n_po_tools/formats/ios_format.rb
153
151
  - lib/i18n_po_tools/formats/po_format.rb
152
+ - lib/i18n_po_tools/formats/properties_format.rb
154
153
  - lib/i18n_po_tools/formats/rails_yaml_format.rb
155
154
  - lib/i18n_po_tools/plural_message.rb
156
155
  - lib/i18n_po_tools/utils/data.rb
@@ -168,12 +167,12 @@ require_paths:
168
167
  - lib
169
168
  required_ruby_version: !ruby/object:Gem::Requirement
170
169
  requirements:
171
- - - ! '>='
170
+ - - ">="
172
171
  - !ruby/object:Gem::Version
173
172
  version: '0'
174
173
  required_rubygems_version: !ruby/object:Gem::Requirement
175
174
  requirements:
176
- - - ! '>='
175
+ - - ">="
177
176
  - !ruby/object:Gem::Version
178
177
  version: '0'
179
178
  requirements: []