Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/twine.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Celis <sebastian@sebastiancelis.com>2017-07-27 17:10:38 +0300
committerSebastian Celis <sebastian@sebastiancelis.com>2017-07-31 18:17:16 +0300
commit1270ef2767a064950bd4457f838e025040795245 (patch)
tree87d4e3327200fe33034db75ee9821104a56f1d5d
parent6686a6474373dc0935b007e6143f8562c7d20ef3 (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.rb2
-rw-r--r--lib/twine/formatters/gettext.rb6
-rw-r--r--test/test_formatters.rb10
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