mirror of
https://github.com/apache/superset.git
synced 2026-06-12 11:09:15 +00:00
88 lines
3.4 KiB
Bash
Executable File
88 lines
3.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd ../.. && pwd )"
|
|
LICENSE_TMP=$(mktemp)
|
|
cat <<'EOF'> "$LICENSE_TMP"
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
EOF
|
|
|
|
cd $ROOT_DIR
|
|
pybabel extract \
|
|
-F superset/translations/babel.cfg \
|
|
-o superset/translations/messages.pot \
|
|
--no-location \
|
|
--sort-output \
|
|
--copyright-holder=Superset \
|
|
--project=Superset \
|
|
-k _ -k __ -k t -k tn:1,2 -k tct .
|
|
|
|
# Normalize .pot file
|
|
msgcat --sort-by-msgid --no-wrap --no-location superset/translations/messages.pot -o superset/translations/messages.pot
|
|
|
|
cat $LICENSE_TMP superset/translations/messages.pot > messages.pot.tmp \
|
|
&& mv messages.pot.tmp superset/translations/messages.pot
|
|
|
|
# --no-fuzzy-matching: when a *new* source string is added, Babel's fuzzy
|
|
# matcher otherwise guesses a "close" existing translation and marks it
|
|
# `#, fuzzy` in every language catalog. Those guesses are (a) usually wrong
|
|
# (e.g. a new "valuename" string mapped onto an unrelated "table name"
|
|
# translation) and (b) counted by check_translation_regression.py as a
|
|
# regression, so every PR that merely adds a translatable string failed the
|
|
# babel-extract check. Disabling fuzzy matching means new strings land as
|
|
# cleanly untranslated (empty msgstr) instead — accurate, and no spurious
|
|
# regression. Renames likewise drop the stale translation rather than
|
|
# stranding a wrong guess; the string is re-translated by the community.
|
|
pybabel update \
|
|
-i superset/translations/messages.pot \
|
|
-d superset/translations \
|
|
--ignore-obsolete \
|
|
--no-fuzzy-matching
|
|
|
|
# Chop off last blankline from po/pot files, see https://github.com/python-babel/babel/issues/799
|
|
for file in $( find superset/translations/** );
|
|
do
|
|
extension=${file##*.}
|
|
filename="${file%.*}"
|
|
if [ $extension == "po" ] || [ $extension == "pot" ]
|
|
then
|
|
mv $file $file.tmp
|
|
sed "$ d" $file.tmp > $file
|
|
rm $file.tmp
|
|
fi
|
|
done
|
|
|
|
cd $CURRENT_DIR
|