1
0
forked from baron/baron-sso
Files
baron-sso/scripts/sync_userfront_locales.sh

48 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
set -e
# 루트 locales/*.toml -> userfront/assets/translations/ 동기화
# - userfront에서 사용하는 섹션만 추출
# - {{param}} -> {param} 변환 (easy_localization 포맷)
repo_root="$(cd "$(dirname "$0")/.." && pwd)"
src_dir="$repo_root/locales"
dest_dir="$repo_root/userfront/assets/translations"
mkdir -p "$dest_dir"
filter_toml() {
src_file="$1"
dest_file="$2"
awk '
function allowed(section) {
return section ~ /^(ui\.userfront|msg\.userfront|err\.userfront|ui\.common)(\.|$)/;
}
BEGIN { keep = 0; }
{
line = $0;
if (match(line, /^[[:space:]]*\[[^]]+\][[:space:]]*$/)) {
section = line;
gsub(/^[[:space:]]*\[/, "", section);
gsub(/\][[:space:]]*$/, "", section);
keep = allowed(section);
if (keep) {
print line;
}
next;
}
if (keep) {
print line;
}
}
' "$src_file" \
| sed -E 's/\{\{[[:space:]]*([a-zA-Z0-9_]+)[[:space:]]*\}\}/{\1}/g' \
> "$dest_file"
}
for file in "$src_dir"/*.toml; do
base="$(basename "$file")"
filter_toml "$file" "$dest_dir/$base"
done
echo "Synced locales to userfront assets: $dest_dir"