]> git.immae.eu Git - github/shaarli/Shaarli.git/commitdiff
Initialize a translation function 627/head
authorArthurHoaro <arthur@hoa.ro>
Sun, 7 Aug 2016 09:52:49 +0000 (11:52 +0200)
committerArthurHoaro <arthur@hoa.ro>
Sun, 7 Aug 2016 09:54:39 +0000 (11:54 +0200)
It matches the API of ngettext().

application/Languages.php [new file with mode: 0644]
index.php
tests/LanguagesTest.php [new file with mode: 0644]

diff --git a/application/Languages.php b/application/Languages.php
new file mode 100644 (file)
index 0000000..c8b0a25
--- /dev/null
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * Wrapper function for translation which match the API
+ * of gettext()/_() and ngettext().
+ *
+ * Not doing translation for now.
+ *
+ * @param string $text  Text to translate.
+ * @param string $nText The plural message ID.
+ * @param int    $nb    The number of items for plural forms.
+ *
+ * @return String Text translated.
+ */
+function t($text, $nText = '', $nb = 0) {
+    if (empty($nText)) {
+        return $text;
+    }
+    $actualForm = $nb > 1 ? $nText : $text;
+    return sprintf($actualForm, $nb);
+}
index f7a62c5edd871c6188b1dfe2a03548705f3e3399..091ad704e6e1b0d1404e878a69c9246c4466b8d4 100644 (file)
--- a/index.php
+++ b/index.php
@@ -53,6 +53,7 @@ require_once 'application/config/ConfigPlugin.php';
 require_once 'application/FeedBuilder.php';
 require_once 'application/FileUtils.php';
 require_once 'application/HttpUtils.php';
+require_once 'application/Languages.php';
 require_once 'application/LinkDB.php';
 require_once 'application/LinkFilter.php';
 require_once 'application/LinkUtils.php';
diff --git a/tests/LanguagesTest.php b/tests/LanguagesTest.php
new file mode 100644 (file)
index 0000000..79c136c
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+
+require_once 'application/Languages.php';
+
+/**
+ * Class LanguagesTest.
+ */
+class LanguagesTest extends PHPUnit_Framework_TestCase
+{
+    /**
+     * Test t() with a simple non identified value.
+     */
+    public function testTranslateSingleNotID()
+    {
+        $text = 'abcdĂ© 564 fgK';
+        $this->assertEquals($text, t($text));
+    }
+
+    /**
+     * Test t() with a non identified plural form.
+     */
+    public function testTranslatePluralNotID()
+    {
+        $text = '%s sandwich';
+        $nText = '%s sandwiches';
+        $this->assertEquals('0 sandwich', t($text, $nText));
+        $this->assertEquals('1 sandwich', t($text, $nText, 1));
+        $this->assertEquals('2 sandwiches', t($text, $nText, 2));
+    }
+
+    /**
+     * Test t() with a non identified invalid plural form.
+     */
+    public function testTranslatePluralNotIDInvalid()
+    {
+        $text = 'sandwich';
+        $nText = 'sandwiches';
+        $this->assertEquals('sandwich', t($text, $nText, 1));
+        $this->assertEquals('sandwiches', t($text, $nText, 2));
+    }
+}