Add Quipu Language Picker
authorJason Stephenson <jstephenson@cwmars.org>
Mon, 20 Dec 2021 19:36:07 +0000 (14:36 -0500)
committerJason Stephenson <jason@sigio.com>
Tue, 17 Jan 2023 20:24:50 +0000 (15:24 -0500)
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Ecard.pm
Open-ILS/src/templates/opac/ecard/form.tt2
Open-ILS/src/templates/opac/ecard/form_ru.tt2
Open-ILS/src/templates/opac/ecard/form_zh.tt2
Open-ILS/src/templates/opac/ecard/lang.tt2 [new file with mode: 0644]

index 11eff6a..272fc1c 100644 (file)
@@ -186,7 +186,7 @@ sub load {
 
     $self->load_simple("myopac") if $path =~ m:opac/myopac:; # A default page for myopac parts
 
-    return $self->load_ecard_form if $path =~ m|opac/ecard/form|;
+    return $self->load_ecard_form($path) if $path =~ m|opac/ecard/form|;
     return $self->load_ecard_submit if $path =~ m|opac/ecard/submit|;
     return $self->load_ecard_verify if $path =~ m|opac/ecard/verify|;
 
index be9bb19..ce8d673 100644 (file)
@@ -62,6 +62,7 @@ my @api_fields = (
 
 sub load_ecard_form {
     my $self = shift;
+    my $path = shift; # Give us the path to determine the language
     my $ctx = $self->ctx;
     my $cgi = $self->cgi;
 
@@ -74,6 +75,12 @@ sub load_ecard_form {
         $ctx_org, 'lib.ecard_quipu_id'
     ) || 0;
 
+    # Determine the language code from the path
+    $ctx->{ecard}->{lang} = 'en'; # English is default
+    if ($path =~ m|opac/ecard/form_([a-z]{2})|) {
+        $ctx->{ecard}->{lang} = $1;
+    }
+
     return Apache2::Const::OK;
 }
 
index 012fee9..ed3f049 100644 (file)
@@ -15,6 +15,8 @@
 <script src="https://ecard-us2.quipugroup.net/js/eCARDEmbed.js"></script>
 <script>loadQGeCARD([% ctx.ecard.quipu_id %])</script>
 
+[% INCLUDE "opac/ecard/lang.tt2" %]
+
 <p>An eCard is a CW MARS library card that you can register for online to access electronic materials, such as ebooks, audiobooks, magazines, and databases.</p>
 
 <p>The eCard is for patrons who do not already have a CW MARS library card and may be upgraded to a physical library card with borrowing privileges by visiting your local library. For more information about the eCard, <a href="https://www.cwmars.org/help/general-faq" target="_blank" rel="noopener">read our FAQ</a>.</p>
index a390ce8..68996f0 100644 (file)
@@ -15,6 +15,8 @@
 <script src="https://ecard-us2.quipugroup.net/js/eCARDEmbed.js"></script>
 <script>loadQGeCARD([% ctx.ecard.quipu_id %])</script>
 
+[% INCLUDE "opac/ecard/lang.tt2" %]
+
 <p>Электронный билет - это библиотечный билет  CW MARS, который вы можете зарегистрировать в Интернете для доступа к электронным материалам, как например электронные книги, аудиокниги, журналы и базы данных.</p>
 
 <p>Электронный билет предназначен для посетителей, у которых еще нет библиотечного билета CW MARS, и его можно улутчить к физическому библиотечному билету с привилегиями заимствования, посетив местную библиотеку. Для получения дополнительной информации об электронном билете прочтите наш <a href="https://www.cwmars.org/help/general-faq#h.tsmz4ldtjggv" target="_blank" rel="noopener">FAQ</a>.</p>
index b2137cb..78c0e00 100644 (file)
@@ -15,6 +15,8 @@
 <script src="https://ecard-us2.quipugroup.net/js/eCARDEmbed.js"></script>
 <script>loadQGeCARD([% ctx.ecard.quipu_id %])</script>
 
+[% INCLUDE "opac/ecard/lang.tt2" %]
+
 <p>电子卡是 CW MARS 借书证,您可以在线注册,用来访问各种电子资料:电子书、有声读物、杂志和数据库等。</p>
 
 <p>电子卡适用于还没有办理 CW MARS 借书证的顾客。您可通过使用电子卡访问当地图书馆,进而升级为具有借阅权限的实体借书证。 有关电子卡的更多信息,请阅读我们的常见问题解答。</p>
diff --git a/Open-ILS/src/templates/opac/ecard/lang.tt2 b/Open-ILS/src/templates/opac/ecard/lang.tt2
new file mode 100644 (file)
index 0000000..ff33f2a
--- /dev/null
@@ -0,0 +1,25 @@
+[%=
+MACRO getformurl(lang, name) BLOCK;
+    IF ctx.ecard.lang == lang;
+       name;
+    ELSE;
+        path = '/eg/opac/ecard/form';
+        IF lang != "en";
+            path = path _ "_" _ lang;
+        END;
+        url = '<a href="' _ path _ '">' _ name _ '</a>';
+        url;
+    END;
+END;
+=%]
+<p>
+(
+[% getformurl('en', 'English') %] |
+<!-- [% getformurl('es', 'Español') %] |
+[% getformurl('pt', 'Português') %] | -->
+[% getformurl('zh', '中文') %] |
+<!-- [% getformurl('fr', 'Français') %] |
+[% getformurl('po', 'Polszczyzna') %] | -->
+[% getformurl('ru', 'Русский') %]
+)
+</p>