diff options
author | Sebastian Celis <sebastian@sebastiancelis.com> | 2017-07-27 17:10:38 +0300 |
---|---|---|
committer | Sebastian Celis <sebastian@sebastiancelis.com> | 2017-07-31 18:17:16 +0300 |
commit | 1270ef2767a064950bd4457f838e025040795245 (patch) | |
tree | 87d4e3327200fe33034db75ee9821104a56f1d5d | |
parent | 6686a6474373dc0935b007e6143f8562c7d20ef3 (diff) |
Fix language detection for .po formatters
The old regular expressions were only supporting two character language
identifiers. This commit allows languages to scale to things like
"en-GB".
Fixes #199
-rw-r--r-- | lib/twine/formatters/django.rb | 2 | ||||
-rw-r--r-- | lib/twine/formatters/gettext.rb | 6 | ||||
-rw-r--r-- | test/test_formatters.rb | 10 |
3 files changed, 12 insertions, 6 deletions
diff --git a/lib/twine/formatters/django.rb b/lib/twine/formatters/django.rb index 5c88766..4687c1a 100644 --- a/lib/twine/formatters/django.rb +++ b/lib/twine/formatters/django.rb @@ -16,7 +16,7 @@ module Twine def determine_language_given_path(path) path_arr = path.split(File::SEPARATOR) path_arr.each do |segment| - match = /(..)\.po$/.match(segment) + match = /([a-z]{2}(-[A-Za-z]{2})?)\.po$/.match(segment) return match[1] if match end diff --git a/lib/twine/formatters/gettext.rb b/lib/twine/formatters/gettext.rb index d63e944..c0dc1ac 100644 --- a/lib/twine/formatters/gettext.rb +++ b/lib/twine/formatters/gettext.rb @@ -18,10 +18,8 @@ module Twine def determine_language_given_path(path) path_arr = path.split(File::SEPARATOR) path_arr.each do |segment| - match = /(..)\.po$/.match(segment) - if match - return match[1] - end + match = /([a-z]{2}(-[A-Za-z]{2})?)\.po$/.match(segment) + return match[1] if match end return diff --git a/test/test_formatters.rb b/test/test_formatters.rb index 6c40a5b..ae10a69 100644 --- a/test/test_formatters.rb +++ b/test/test_formatters.rb @@ -267,7 +267,6 @@ class TestJQueryFormatter < FormatterTest end class TestGettextFormatter < FormatterTest - def setup super Twine::Formatters::Gettext end @@ -290,6 +289,10 @@ class TestGettextFormatter < FormatterTest assert_equal content('formatter_gettext.po'), formatter.format_file('en') end + def test_deducts_language_and_region + language = "en-GB" + assert_equal language, @formatter.determine_language_given_path("#{language}.po") + end end class TestTizenFormatter < FormatterTest @@ -329,6 +332,11 @@ class TestDjangoFormatter < FormatterTest formatter.twine_file = @twine_file assert_equal content('formatter_django.po'), formatter.format_file('en') end + + def test_deducts_language_and_region + language = "en-GB" + assert_equal language, @formatter.determine_language_given_path("#{language}.po") + end end class TestFlashFormatter < FormatterTest |