diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
commit | fc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch) | |
tree | ce1e3bce06471410239a6f41282e328770aa404a /templates/create-common-templates.sh | |
parent | Initial commit. (diff) | |
download | manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip |
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'templates/create-common-templates.sh')
-rwxr-xr-x | templates/create-common-templates.sh | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/templates/create-common-templates.sh b/templates/create-common-templates.sh new file mode 100755 index 00000000..e59d350d --- /dev/null +++ b/templates/create-common-templates.sh @@ -0,0 +1,87 @@ +#!/bin/sh +# +# Copyright © 2017-2019 Dr. Tobias Quathamer <toddy@debian.org> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Create pot files for common msgids +echo "Generating pot files for common msgids ..." + +previous_step="" +steps="100 20 10 4 3 2" + +for step in $steps; do + if [ "X$previous_step" = "X" ] ; then + echo Generating $step - ... + else + echo Generating $step - $(($previous_step - 1)) + fi + # Get all msgids with at least $step and at most $previous_step occurences + LC_ALL=C msgcat --less-than=$previous_step --more-than=$(($step - 1)) \ + --sort-output man*/*pot > step.pot + # Remove most comment lines, preserve "#, no-wrap" etc. + sed -i -e "/^# /d;/^#$/d;/^#\. /d" step.pot + # Remove first (empty) msgid with all combined headers + sed -i -e "1,/^$/d" step.pot + # Create a temporary header for the pot file + header=$(mktemp) + cat > "$header" <<END_OF_HEADER +# Common msgids +msgid "" +msgstr "" +"Project-Id-Version: manpages-l10n\n" +"POT-Creation-Date: CURRENT_DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +END_OF_HEADER + current_date=$(date +"%Y-%m-%d %H:%M%z") + sed -i -e "s/CURRENT_DATE/$current_date/" "$header" + cat "$header" step.pot > tmp2.pot + + # Create a filename with leading zeros + min_step_file=$(printf "min-%03d-occurences.pot" $step) + + # Remove dates, as they are translated automatically + msggrep --msgid -v -E -e "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" tmp2.pot > $min_step_file + + # Remove msgids which are listed in the exclude file. + # Ensure that excluded msgids are not unique by creating + # a temporary copy of that file. + cp exclude.pot tmp.pot + msgcat --unique tmp.pot exclude.pot $min_step_file > tmp2.pot + + # Remove first (empty) msgid with all combined headers + sed -i -e "1,/^$/d" tmp2.pot + cat "$header" tmp2.pot > $min_step_file + + # Determine if the only change is the "POT-Creation-Date:" header + # If so, do not copy to the common directory + sed -f remove-potcdate.sed < common/$min_step_file > old.pot + sed -f remove-potcdate.sed < $min_step_file > new.pot + if cmp old.pot new.pot >/dev/null 2>&1; then + rm $min_step_file + else + mv $min_step_file common/ + fi + + # Clean up + previous_step=$step + rm -rf tmp.pot tmp2.pot step.pot new.pot old.pot "$header" +done |