forked from baron/baron-sso
48 lines
1.2 KiB
Bash
Executable File
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"
|