xarxaprod-wp-theme/vendor/wp-cli/i18n-command/features/updatepo.feature

353 lines
11 KiB
Gherkin
Raw Permalink Normal View History

2024-01-09 16:13:20 +01:00
Feature: Update existing PO files from a POT file
Background:
Given an empty directory
Scenario: Bail for invalid source file
When I try `wp i18n update-po bar/baz.pot`
Then STDERR should contain:
"""
Error: Source file does not exist!
"""
And the return code should be 1
Scenario: Does nothing if there are no PO files
Given an empty foo-plugin directory
And a foo-plugin/foo-plugin.pot file:
"""
# Copyright (C) 2018 Foo Plugin
# This file is distributed under the same license as the Foo Plugin package.
msgid ""
msgstr ""
"Project-Id-Version: Foo Plugin\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/foo-plugin\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2018-05-02T22:06:24+00:00\n"
"PO-Revision-Date: 2018-05-02T22:06:24+00:00\n"
"X-Domain: foo-plugin\n"
#: foo-plugin.js:15
msgid "Foo Plugin"
msgstr ""
"""
When I run `wp i18n update-po foo-plugin/foo-plugin.pot`
Then STDOUT should be:
"""
Success: Updated 0 files.
"""
And STDERR should be empty
Scenario: Updates all PO files in the source directory by default
Given an empty foo-plugin directory
And a foo-plugin/foo-plugin.pot file:
"""
# Copyright (C) 2018 Foo Plugin
# This file is distributed under the same license as the Foo Plugin package.
msgid ""
msgstr ""
"Project-Id-Version: Foo Plugin\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/foo-plugin\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2018-05-02T22:06:24+00:00\n"
"PO-Revision-Date: 2018-05-02T22:06:24+00:00\n"
"X-Domain: foo-plugin\n"
#. translators: New Comment.
#: foo-plugin.php:1
msgid "Some string"
msgstr ""
#: foo-plugin.php:15
msgid "Another new string"
msgstr ""
#: foo-plugin.php:30
msgid "You have %d new message"
msgid_plural "You have %d new messages"
"""
And a foo-plugin/foo-plugin-de_DE.po file:
"""
# Copyright (C) 2018 Foo Plugin
# This file is distributed under the same license as the Foo Plugin package.
msgid ""
msgstr ""
"Project-Id-Version: Foo Plugin\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/foo-plugin\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2018-05-02T22:06:24+00:00\n"
"PO-Revision-Date: 2018-05-02T22:06:24+00:00\n"
"X-Domain: foo-plugin\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. translators: Old Comment.
#: foo-plugin.php:10
msgid "Some string"
msgstr "Some translated string"
#: foo-plugin.php:60
msgid "You have %d new message"
msgid_plural "You have %d new messages"
msgstr[0] "Sie haben %d neue Nachricht"
msgstr[1] "Sie haben %d neue Nachrichten"
"""
When I run `wp i18n update-po foo-plugin/foo-plugin.pot`
Then STDOUT should be:
"""
Success: Updated 1 file.
"""
And STDERR should be empty
And the foo-plugin/foo-plugin-de_DE.po file should contain:
"""
#. translators: New Comment.
#: foo-plugin.php:1
msgid "Some string"
msgstr "Some translated string"
"""
And the foo-plugin/foo-plugin-de_DE.po file should contain:
"""
#: foo-plugin.php:15
msgid "Another new string"
msgstr ""
"""
And the foo-plugin/foo-plugin-de_DE.po file should contain:
"""
#: foo-plugin.php:30
msgid "You have %d new message"
msgid_plural "You have %d new messages"
msgstr[0] "Sie haben %d neue Nachricht"
msgstr[1] "Sie haben %d neue Nachrichten"
"""
And the foo-plugin/foo-plugin-de_DE.po file should not contain:
"""
#. translators: Old Comment.
"""
And the foo-plugin/foo-plugin-de_DE.po file should not contain:
"""
#: foo-plugin.php:10
"""
Scenario: Updates the specified target PO file
Given an empty foo-plugin directory
And a foo-plugin/foo-plugin.pot file:
"""
# Copyright (C) 2018 Foo Plugin
# This file is distributed under the same license as the Foo Plugin package.
msgid ""
msgstr ""
"Project-Id-Version: Foo Plugin\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/foo-plugin\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2018-05-02T22:06:24+00:00\n"
"PO-Revision-Date: 2018-05-02T22:06:24+00:00\n"
"X-Domain: foo-plugin\n"
#. translators: New Comment.
#: foo-plugin.php:1
msgid "Some string"
msgstr ""
#: foo-plugin.php:15
msgid "Another new string"
msgstr ""
"""
And a foo-plugin/foo-plugin-de_DE.po file:
"""
# Copyright (C) 2018 Foo Plugin
# This file is distributed under the same license as the Foo Plugin package.
msgid ""
msgstr ""
"Project-Id-Version: Foo Plugin\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/foo-plugin\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2018-05-02T22:06:24+00:00\n"
"PO-Revision-Date: 2018-05-02T22:06:24+00:00\n"
"X-Domain: foo-plugin\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. translators: Old Comment.
#: foo-plugin.php:10
msgid "Some string"
msgstr "Some translated string"
"""
And a foo-plugin/foo-plugin-es_ES.po file:
"""
# Copyright (C) 2018 Foo Plugin
# This file is distributed under the same license as the Foo Plugin package.
msgid ""
msgstr ""
"Project-Id-Version: Foo Plugin\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/foo-plugin\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2018-05-02T22:06:24+00:00\n"
"PO-Revision-Date: 2018-05-02T22:06:24+00:00\n"
"X-Domain: foo-plugin\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. translators: Old Comment.
#: foo-plugin.php:10
msgid "Some string"
msgstr "Some translated string"
"""
When I run `wp i18n update-po foo-plugin/foo-plugin.pot foo-plugin/foo-plugin-de_DE.po`
Then STDOUT should be:
"""
Success: Updated 1 file.
"""
And STDERR should be empty
And the foo-plugin/foo-plugin-de_DE.po file should contain:
"""
#. translators: New Comment.
#: foo-plugin.php:1
msgid "Some string"
msgstr "Some translated string"
#: foo-plugin.php:15
msgid "Another new string"
msgstr ""
"""
And the foo-plugin/foo-plugin-es_ES.po file should contain:
"""
#. translators: Old Comment.
"""
And the foo-plugin/foo-plugin-es_ES.po file should contain:
"""
#: foo-plugin.php:10
"""
Scenario: Updates all PO files in the specified target directory
Given an empty source directory
And an empty target directory
And a source/foo-plugin.pot file:
"""
# Copyright (C) 2018 Foo Plugin
# This file is distributed under the same license as the Foo Plugin package.
msgid ""
msgstr ""
"Project-Id-Version: Foo Plugin\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/foo-plugin\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2018-05-02T22:06:24+00:00\n"
"PO-Revision-Date: 2018-05-02T22:06:24+00:00\n"
"X-Domain: foo-plugin\n"
#. translators: New Comment.
#: foo-plugin.php:1
msgid "Some string"
msgstr ""
#: foo-plugin.php:15
msgid "Another new string"
msgstr ""
"""
And a target/foo-plugin-de_DE.po file:
"""
# Copyright (C) 2018 Foo Plugin
# This file is distributed under the same license as the Foo Plugin package.
msgid ""
msgstr ""
"Project-Id-Version: Foo Plugin\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/foo-plugin\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2018-05-02T22:06:24+00:00\n"
"PO-Revision-Date: 2018-05-02T22:06:24+00:00\n"
"X-Domain: foo-plugin\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. translators: Old Comment.
#: foo-plugin.php:10
msgid "Some string"
msgstr "Some translated string"
"""
And a target/foo-plugin-es_ES.po file:
"""
# Copyright (C) 2018 Foo Plugin
# This file is distributed under the same license as the Foo Plugin package.
msgid ""
msgstr ""
"Project-Id-Version: Foo Plugin\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/foo-plugin\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2018-05-02T22:06:24+00:00\n"
"PO-Revision-Date: 2018-05-02T22:06:24+00:00\n"
"X-Domain: foo-plugin\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. translators: Old Comment.
#: foo-plugin.php:10
msgid "Some string"
msgstr "Some translated string"
"""
When I run `wp i18n update-po source/foo-plugin.pot target`
Then STDOUT should be:
"""
Success: Updated 2 files.
"""
And STDERR should be empty
And the target/foo-plugin-de_DE.po file should contain:
"""
#. translators: New Comment.
#: foo-plugin.php:1
msgid "Some string"
msgstr "Some translated string"
#: foo-plugin.php:15
msgid "Another new string"
msgstr ""
"""
And the target/foo-plugin-es_ES.po file should contain:
"""
#. translators: New Comment.
#: foo-plugin.php:1
msgid "Some string"
msgstr "Some translated string"
#: foo-plugin.php:15
msgid "Another new string"
msgstr ""
"""