foreman-packaging/dependencies/trusty/hammer_cli/patches/fixes-4916-skip-missing-translation-domains.patch @ c97db699
c97db699 | Greg Sutcliffe | From 77c62f8e9410c7ab743f0b4cbc7ff9c2a147c98a Mon Sep 17 00:00:00 2001
|
|
From: Tomas Strachota <tstrachota@redhat.com>
|
|||
Date: Mon, 31 Mar 2014 11:18:16 +0000
|
|||
Subject: [PATCH] Fixes #4916 - skip missing translation domains
|
|||
---
|
|||
lib/hammer_cli/i18n.rb | 16 +++++++++++++-
|
|||
test/unit/i18n_test.rb | 50 ++++++++++++++++++++++++++++++++++++++++++++++++
|
|||
2 files changed, 64 insertions(+), 2 deletions(-)
|
|||
create mode 100644 test/unit/i18n_test.rb
|
|||
diff --git a/lib/hammer_cli/i18n.rb b/lib/hammer_cli/i18n.rb
|
|||
index 6b883fc..0cb62b0 100644
|
|||
--- a/lib/hammer_cli/i18n.rb
|
|||
+++ b/lib/hammer_cli/i18n.rb
|
|||
@@ -37,6 +37,10 @@ module HammerCLI
|
|||
:mo
|
|||
end
|
|||
+ def available?
|
|||
+ File.exist?(locale_dir)
|
|||
+ end
|
|||
+
|
|||
attr_reader :locale_dir, :domain_name
|
|||
end
|
|||
@@ -76,12 +80,20 @@ module HammerCLI
|
|||
@domains
|
|||
end
|
|||
+
|
|||
def self.add_domain(domain)
|
|||
- domains << domain
|
|||
- FastGettext.add_text_domain(domain.domain_name, :path => domain.locale_dir, :type => domain.type, :report_warning => false)
|
|||
+ if domain.available?
|
|||
+ domains << domain
|
|||
+ FastGettext.add_text_domain(domain.domain_name, :path => domain.locale_dir, :type => domain.type, :report_warning => false)
|
|||
+ end
|
|||
end
|
|||
+ def self.clear
|
|||
+ FastGettext.translation_repositories.clear
|
|||
+ domains.clear
|
|||
+ end
|
|||
+
|
|||
Encoding.default_external='UTF-8' if defined? Encoding
|
|||
FastGettext.locale = locale
|
|||
diff --git a/test/unit/i18n_test.rb b/test/unit/i18n_test.rb
|
|||
new file mode 100644
|
|||
index 0000000..c0a884c
|
|||
--- /dev/null
|
|||
+++ b/test/unit/i18n_test.rb
|
|||
@@ -0,0 +1,50 @@
|
|||
+require File.join(File.dirname(__FILE__), 'test_helper')
|
|||
+
|
|||
+
|
|||
+describe HammerCLI::I18n do
|
|||
+
|
|||
+ class TestLocaleDomain < HammerCLI::I18n::AbstractLocaleDomain
|
|||
+
|
|||
+ def initialize(name, available)
|
|||
+ @name = name
|
|||
+ @available = available
|
|||
+ end
|
|||
+
|
|||
+ def locale_dir
|
|||
+ File.dirname(__FILE__)
|
|||
+ end
|
|||
+
|
|||
+ def domain_name
|
|||
+ @name
|
|||
+ end
|
|||
+
|
|||
+ def available?
|
|||
+ @available
|
|||
+ end
|
|||
+ end
|
|||
+
|
|||
+ before :each do
|
|||
+ HammerCLI::I18n.clear
|
|||
+ end
|
|||
+
|
|||
+ let(:domain1) { TestLocaleDomain.new('domain1', true) }
|
|||
+ let(:domain2) { TestLocaleDomain.new('domain2', true) }
|
|||
+ let(:unavailable_domain) { TestLocaleDomain.new('domain3', false) }
|
|||
+
|
|||
+ it "registers available domains at gettext" do
|
|||
+ FastGettext.expects(:add_text_domain).with do |name, options|
|
|||
+ (name == domain1.domain_name) && (options[:path] == domain1.locale_dir) && (options[:type] == domain1.type)
|
|||
+ end
|
|||
+ HammerCLI::I18n.add_domain(domain1)
|
|||
+ end
|
|||
+
|
|||
+ it "skips registering domains that are not available" do
|
|||
+ HammerCLI::I18n.add_domain(domain1)
|
|||
+ HammerCLI::I18n.add_domain(domain2)
|
|||
+ HammerCLI::I18n.add_domain(unavailable_domain)
|
|||
+ HammerCLI::I18n.domains.must_equal [domain1, domain2]
|
|||
+ end
|
|||
+
|
|||
+
|
|||
+end
|
|||
+
|
|||
--
|
|||
1.7.1
|