|
|
@ -11,16 +11,15 @@ fi |
|
|
|
|
|
|
|
ORIGINAL_TXT="$1" |
|
|
|
POT_DIR="$(pwd)/Modules/pot/" |
|
|
|
TEMP_DIR="$(mktemp -d)" |
|
|
|
POT=$(basename "${ORIGINAL_TXT%%.txt}.pot") |
|
|
|
TEMP_POT="${TEMP_DIR}/${POT}" |
|
|
|
POT="${POT_DIR}/${POT}" |
|
|
|
|
|
|
|
# Reinit exiting POT |
|
|
|
mkdir -p "${POT_DIR}" |
|
|
|
truncate -s 0 "${POT}" |
|
|
|
|
|
|
|
# First thing first, let's anonymize the pot and delete all email references |
|
|
|
sed -i 's/[A-Za-z0-9._%+-]\+@[A-Za-z0-9.-]\+\.[A-Za-z]\{2,6\}//' "${POT}" |
|
|
|
|
|
|
|
comment_event="" |
|
|
|
comment_node="" |
|
|
|
comment_story="" |
|
|
@ -35,25 +34,25 @@ while read -r line; do |
|
|
|
elif [[ ${line} == *"[STORY]"* ]]; then |
|
|
|
comment_story="${comment_event}@@${comment_node}@@${line}" |
|
|
|
#Time for new story, write the comment to pot |
|
|
|
echo "#. ${comment_story}" | tr -d '\r' | tr -d '\n' >> "${POT}" |
|
|
|
echo >> "${POT}" |
|
|
|
echo "#. ${comment_story}" | tr -d '\r' | tr -d '\n' >> "${TEMP_POT}" |
|
|
|
echo >> "${TEMP_POT}" |
|
|
|
story_first_line=1 |
|
|
|
elif [[ ${line} == *"[/STORY]"* ]]; then |
|
|
|
# we reach end of story, write the empty msgid and reinit the comment_story |
|
|
|
echo 'msgstr ""' >> "${POT}" |
|
|
|
echo >> "${POT}" |
|
|
|
echo 'msgstr ""' >> "${TEMP_POT}" |
|
|
|
echo >> "${TEMP_POT}" |
|
|
|
comment_story="" |
|
|
|
elif [[ ${line} == *"[OUT]"* ]]; then |
|
|
|
comment_out="${comment_event}@@${comment_node}@@[OUT]${out_incr}" |
|
|
|
# OUT are one line, let's write it to the pot |
|
|
|
echo "#. ${comment_out}" | tr -d '\r' | tr -d '\n' >> "${POT}" |
|
|
|
echo >> "${POT}" |
|
|
|
echo "#. ${comment_out}" | tr -d '\r' | tr -d '\n' >> "${TEMP_POT}" |
|
|
|
echo >> "${TEMP_POT}" |
|
|
|
# Get rid of special character |
|
|
|
line="${line//'"'/'\\"'}" |
|
|
|
echo "msgid \"${line#\[OUT\]}\"" | tr -d '\r' | tr -d '\n' >> "${POT}" |
|
|
|
echo >> "${POT}" |
|
|
|
echo 'msgstr ""' >> "${POT}" |
|
|
|
echo >> "${POT}" |
|
|
|
line="${line//'"'/'\"'}" |
|
|
|
echo "msgid \"${line#\[OUT\]}\"" | tr -d '\r' | tr -d '\n' >> "${TEMP_POT}" |
|
|
|
echo >> "${TEMP_POT}" |
|
|
|
echo 'msgstr ""' >> "${TEMP_POT}" |
|
|
|
echo >> "${TEMP_POT}" |
|
|
|
((out_incr++)) |
|
|
|
elif [[ ${line} == *"[/NODE]"* ]]; then |
|
|
|
# We reach end of node, reinit |
|
|
@ -70,11 +69,11 @@ while read -r line; do |
|
|
|
out_incr=1 |
|
|
|
elif [[ "${comment_story}" != "" && ${story_first_line} == 1 ]]; then |
|
|
|
# Get rid of special character |
|
|
|
line="${line//'"'/'\\"'}" |
|
|
|
line="${line//'"'/'\"'}" |
|
|
|
# If the line has nothing particular, and the comment_story is not empty, it's a story string |
|
|
|
# As the story_fist_line is set, it's the first line of the story, add the msgid |
|
|
|
echo "msgid \"${line}\"" | tr -d '\r' | tr -d '\n' >> "${POT}" |
|
|
|
echo >> "${POT}" |
|
|
|
echo "msgid \"${line}\"" | tr -d '\r' | tr -d '\n' >> "${TEMP_POT}" |
|
|
|
echo >> "${TEMP_POT}" |
|
|
|
story_first_line=0 |
|
|
|
elif [[ ${comment_story} != "" ]]; then |
|
|
|
# Get rid of special character |
|
|
@ -82,12 +81,15 @@ while read -r line; do |
|
|
|
# We are on a multilines story, write it but without the msgid |
|
|
|
# Also as this is multiline, we need to add \n to the previous line (no way to detect it sooner...) |
|
|
|
sed -e '$s/\(.*\)"$/\1\\n"/' -i "${POT}" |
|
|
|
echo "\"${line}\"" | tr -d '\r' | tr -d '\n' >> "${POT}" |
|
|
|
echo >> "${POT}" |
|
|
|
echo "\"${line}\"" | tr -d '\r' | tr -d '\n' >> "${TEMP_POT}" |
|
|
|
echo >> "${TEMP_POT}" |
|
|
|
else |
|
|
|
# It should be a newline, write a newline |
|
|
|
# If new are added, we need to deal with it, do not break the file by writing them |
|
|
|
echo "" >> "${POT}" |
|
|
|
echo "" >> "${TEMP_POT}" |
|
|
|
fi |
|
|
|
|
|
|
|
done < "${ORIGINAL_TXT}" |
|
|
|
|
|
|
|
# Unify duplicate due to pot syntax |
|
|
|
msguniq --no-wrap "${TEMP_POT}" > "${POT}" |