Move translations whose message ids do not appear as literals in the sources into a separate file
Test whether additional.{m,p}o files are loaded correctly
This commit is contained in:
parent
d10fe23366
commit
6cde313e47
|
@ -0,0 +1,36 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Engelsystem 2.0\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: de_DE\n"
|
||||
|
||||
msgid "auth.not-found"
|
||||
msgstr ""
|
||||
"Es wurde kein User gefunden oder das Passwort ist falsch. Probiere es bitte noch einmal. Wenn das Problem "
|
||||
"weiterhin besteht, melde dich im Himmel."
|
||||
|
||||
msgid "validation.password.required"
|
||||
msgstr "Bitte gib ein Passwort an."
|
||||
|
||||
msgid "validation.login.required"
|
||||
msgstr "Bitte gib einen Loginnamen an."
|
||||
|
||||
msgid "validation.email.required"
|
||||
msgstr "Bitte gib eine E-Mail-Adresse an."
|
||||
|
||||
msgid "validation.email.email"
|
||||
msgstr "Die E-Mail-Adresse ist nicht gültig."
|
||||
|
||||
msgid "validation.password.min"
|
||||
msgstr "Dein angegebenes Passwort ist zu kurz."
|
||||
|
||||
msgid "validation.password.confirmed"
|
||||
msgstr "Deine Passwörter stimmen nicht überein."
|
||||
|
||||
msgid "validation.password_confirmation.required"
|
||||
msgstr "Du musst dein Passwort bestätigen."
|
|
@ -1536,10 +1536,10 @@ msgstr "Pflichtfeld!"
|
|||
#~ msgstr "Gib bitte ein Passwort ein."
|
||||
|
||||
#: includes/pages/guest_login.php:418
|
||||
msgid "auth.not-found"
|
||||
msgstr ""
|
||||
"Es wurde kein User gefunden oder das Passwort ist falsch. Probiere es bitte noch einmal. Wenn das Problem "
|
||||
"weiterhin besteht, melde dich im Himmel."
|
||||
#~ msgid "auth.not-found"
|
||||
#~ msgstr ""
|
||||
#~ "Es wurde kein User gefunden oder das Passwort ist falsch. Probiere es bitte noch einmal. Wenn das Problem "
|
||||
#~ "weiterhin besteht, melde dich im Himmel."
|
||||
|
||||
#~ msgid "auth.no-nickname"
|
||||
#~ msgstr "Gib bitte einen Nick an."
|
||||
|
@ -2767,26 +2767,5 @@ msgstr ""
|
|||
"Diese Seite existiert nicht oder Du hast keinen Zugriff. Melde Dich an um "
|
||||
"Zugriff zu erhalten!"
|
||||
|
||||
msgid "validation.password.required"
|
||||
msgstr "Bitte gib ein Passwort an."
|
||||
|
||||
msgid "validation.login.required"
|
||||
msgstr "Bitte gib einen Loginnamen an."
|
||||
|
||||
msgid "form.submit"
|
||||
msgstr "Absenden"
|
||||
|
||||
msgid "validation.email.required"
|
||||
msgstr "Bitte gib eine E-Mail-Adresse an."
|
||||
|
||||
msgid "validation.email.email"
|
||||
msgstr "Die E-Mail-Adresse ist nicht gültig."
|
||||
|
||||
msgid "validation.password.min"
|
||||
msgstr "Dein angegebenes Passwort ist zu kurz."
|
||||
|
||||
msgid "validation.password.confirmed"
|
||||
msgstr "Deine Passwörter stimmen nicht überein."
|
||||
|
||||
msgid "validation.password_confirmation.required"
|
||||
msgstr "Du musst dein Passwort bestätigen."
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Engelsystem 2.0\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: en_US\n"
|
||||
|
||||
msgid "auth.not-found"
|
||||
msgstr "No user was found or password is wrong. Please try again. If you are still having problems, ask Heaven."
|
||||
|
||||
msgid "validation.password.required"
|
||||
msgstr "The password is required."
|
||||
|
||||
msgid "validation.login.required"
|
||||
msgstr "The login name is required."
|
||||
|
||||
msgid "validation.email.required"
|
||||
msgstr "The email address is required."
|
||||
|
||||
msgid "validation.email.email"
|
||||
msgstr "This email address is not valid."
|
||||
|
||||
msgid "validation.password.min"
|
||||
msgstr "Your password is too short."
|
||||
|
||||
msgid "validation.password.confirmed"
|
||||
msgstr "Your passwords are not equal."
|
||||
|
||||
msgid "validation.password_confirmation.required"
|
||||
msgstr "You have to confirm your password."
|
|
@ -22,29 +22,5 @@ msgstr ""
|
|||
#~ msgid "auth.no-password"
|
||||
#~ msgstr "Please enter a password."
|
||||
|
||||
msgid "auth.not-found"
|
||||
msgstr "No user was found or password is wrong. Please try again. If you are still having problems, ask Heaven."
|
||||
|
||||
msgid "validation.password.required"
|
||||
msgstr "The password is required."
|
||||
|
||||
msgid "validation.login.required"
|
||||
msgstr "The login name is required."
|
||||
|
||||
msgid "form.submit"
|
||||
msgstr "Submit"
|
||||
|
||||
msgid "validation.email.required"
|
||||
msgstr "The email address is required."
|
||||
|
||||
msgid "validation.email.email"
|
||||
msgstr "This email address is not valid."
|
||||
|
||||
msgid "validation.password.min"
|
||||
msgstr "Your password is too short."
|
||||
|
||||
msgid "validation.password.confirmed"
|
||||
msgstr "Your passwords are not equal."
|
||||
|
||||
msgid "validation.password_confirmation.required"
|
||||
msgstr "You have to confirm your password."
|
||||
|
|
|
@ -70,17 +70,20 @@ class TranslationServiceProvider extends ServiceProvider
|
|||
public function getTranslator(string $locale): GettextTranslator
|
||||
{
|
||||
if (!isset($this->translators[$locale])) {
|
||||
$file = $this->getFile($locale);
|
||||
$names = ['default', 'additional'];
|
||||
|
||||
/** @var GettextTranslator $translator */
|
||||
$translator = $this->app->make(GettextTranslator::class);
|
||||
|
||||
/** @var Translations $translations */
|
||||
$translations = $this->app->make(Translations::class);
|
||||
if (Str::endsWith($file, '.mo')) {
|
||||
$translations->addFromMoFile($file);
|
||||
} else {
|
||||
$translations->addFromPoFile($file);
|
||||
foreach ($names as $name) {
|
||||
$file = $this->getFile($locale, $name);
|
||||
if (Str::endsWith($file, '.mo')) {
|
||||
$translations->addFromMoFile($file);
|
||||
} else {
|
||||
$translations->addFromPoFile($file);
|
||||
}
|
||||
}
|
||||
|
||||
$translator->loadTranslations($translations);
|
||||
|
@ -93,11 +96,12 @@ class TranslationServiceProvider extends ServiceProvider
|
|||
|
||||
/**
|
||||
* @param string $locale
|
||||
* @param string $name
|
||||
* @return string
|
||||
*/
|
||||
protected function getFile(string $locale): string
|
||||
protected function getFile(string $locale, string $name = 'default'): string
|
||||
{
|
||||
$filepath = $file = $this->app->get('path.lang') . '/' . $locale . '/default';
|
||||
$filepath = $file = $this->app->get('path.lang') . '/' . $locale . '/' . $name;
|
||||
$file = $filepath . '.mo';
|
||||
|
||||
if (!file_exists($file)) {
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# Testing content
|
||||
msgid "validation.foo.bar"
|
||||
msgstr "B Arr required!"
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
# Testing content
|
||||
msgid "validation.foo.bar"
|
||||
msgstr "Foo Bar required!"
|
|
@ -7,6 +7,7 @@ use Engelsystem\Helpers\Translation\TranslationServiceProvider;
|
|||
use Engelsystem\Helpers\Translation\Translator;
|
||||
use Engelsystem\Test\Unit\ServiceProviderTest;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use PHPUnit\Framework\MockObject\Rule\InvokedCount;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
|
||||
class TranslationServiceProviderTest extends ServiceProviderTest
|
||||
|
@ -82,11 +83,12 @@ class TranslationServiceProviderTest extends ServiceProviderTest
|
|||
$app = $this->getApp(['get']);
|
||||
$serviceProvider = new TranslationServiceProvider($app);
|
||||
|
||||
$this->setExpects($app, 'get', ['path.lang'], __DIR__ . '/Assets');
|
||||
$this->setExpects($app, 'get', ['path.lang'], __DIR__ . '/Assets', new InvokedCount(2));
|
||||
|
||||
// Get translator
|
||||
$translator = $serviceProvider->getTranslator('fo_OO');
|
||||
$this->assertEquals('Foo Bar!', $translator->gettext('foo.bar'));
|
||||
$this->assertEquals('Foo Bar required!', $translator->gettext('validation.foo.bar'));
|
||||
|
||||
// Retry from cache
|
||||
$serviceProvider->getTranslator('fo_OO');
|
||||
|
@ -99,12 +101,13 @@ class TranslationServiceProviderTest extends ServiceProviderTest
|
|||
public function testGetTranslatorFromPo(): void
|
||||
{
|
||||
$app = $this->getApp(['get']);
|
||||
$this->setExpects($app, 'get', ['path.lang'], __DIR__ . '/Assets');
|
||||
$this->setExpects($app, 'get', ['path.lang'], __DIR__ . '/Assets', new InvokedCount(2));
|
||||
|
||||
$serviceProvider = new TranslationServiceProvider($app);
|
||||
|
||||
// Get translator using a .po file
|
||||
$translator = $serviceProvider->getTranslator('ba_RR');
|
||||
$this->assertEquals('B Arr!', $translator->gettext('foo.bar'));
|
||||
$this->assertEquals('B Arr required!', $translator->gettext('validation.foo.bar'));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue