353 lines
11 KiB
Gherkin
353 lines
11 KiB
Gherkin
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 ""
|
|
"""
|