aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perllib/FixMyStreet/Roles/Translatable.pm4
-rw-r--r--t/roles/translatable.t36
2 files changed, 25 insertions, 15 deletions
diff --git a/perllib/FixMyStreet/Roles/Translatable.pm b/perllib/FixMyStreet/Roles/Translatable.pm
index 3bd5a148d..d39d97bf8 100644
--- a/perllib/FixMyStreet/Roles/Translatable.pm
+++ b/perllib/FixMyStreet/Roles/Translatable.pm
@@ -1,6 +1,7 @@
package FixMyStreet::Roles::Translatable;
use Moo::Role;
+use FixMyStreet;
has _translated => (is => 'rw');
@@ -25,6 +26,9 @@ sub translate_column {
sub _translate {
my ($self, $col, $fallback) = @_;
+ my $langs = FixMyStreet->config('LANGUAGES');
+ return $fallback if !$langs || @$langs < 2;
+
my %cols = $self->get_columns;
return $cols{msgstr} if $cols{msgstr};
diff --git a/t/roles/translatable.t b/t/roles/translatable.t
index 71e39c360..e13f49fc6 100644
--- a/t/roles/translatable.t
+++ b/t/roles/translatable.t
@@ -41,31 +41,37 @@ is $body->name, "Dunkirk";
is $contact->category_display, "Potholes";
is $problem->category_display, "Potholes";
-FixMyStreet::DB->schema->lang("fr");
-is $body->name, "Dunkerque";
-is $contact->category_display, "Potholes";
-is $problem->category_display, "Potholes";
+# Multiple LANGUAGES so translation code is called
+FixMyStreet::override_config {
+ LANGUAGES => [ 'en-gb,English,en_GB', 'de,German,de_DE' ]
+}, sub {
+ FixMyStreet::DB->schema->lang("fr");
+ is $body->name, "Dunkerque";
+ is $contact->category_display, "Potholes";
+ is $problem->category_display, "Potholes";
-FixMyStreet::DB->schema->lang("de");
-is $body->name, "Dunkirk";
-is $contact->category_display, "Schlaglöcher";
-is $problem->category_display, "Schlaglöcher";
+ FixMyStreet::DB->schema->lang("de");
+ is $body->name, "Dunkirk";
+ is $contact->category_display, "Schlaglöcher";
+ is $problem->category_display, "Schlaglöcher";
-is $contact->translation_for('category', 'de')->msgstr, "Schlaglöcher";
-is $body->translation_for('name', 'fr')->msgstr, "Dunkerque";
+ is $contact->translation_for('category', 'de')->msgstr, "Schlaglöcher";
+ is $body->translation_for('name', 'fr')->msgstr, "Dunkerque";
-ok $body->add_translation_for('name', 'es', 'Dunkerque');
+ ok $body->add_translation_for('name', 'es', 'Dunkerque');
-FixMyStreet::DB->schema->lang("es");
-is $body->name, "Dunkerque";
+ FixMyStreet::DB->schema->lang("es");
+ is $body->name, "Dunkerque";
-is $body->translation_for('name')->count, 2;
+ is $body->translation_for('name')->count, 2;
+};
FixMyStreet::override_config {
+ LANGUAGES => [ 'en-gb,English,en_GB', 'nb,Norwegian,nb_NO' ],
ALLOWED_COBRANDS => [ 'fiksgatami' ],
}, sub {
$mech->get_ok($problem->url);
- $mech->content_contains('Hull i veien');
+ $mech->content_contains('Hull i veien');
};
done_testing;