~jadedctrl/gem-xwx-moe

Showing details for patch 7544430c04ee4e502ea8fa0f8c911240ddecdce6.
2024-08-01 (Thu), 8:12 AM - - 7544430c04ee4e502ea8fa0f8c911240ddecdce6

Ligoj → Kopioj; neprigu Esperanton en ĉiu teksto

Ni aldonas »esperantigi_modifaĵojn« skriptetojn,
kiuj anstataŭigas tradukeblajn tekstojn per la
simpla Esperanta formo; ĉi tiel, eĉ persono kun
sia kliento agordita al la hispana vidus
esperanton!

Ĉi tio pli-malpli *postulis* ke oni uzu kopiojn
anstataŭ ligoj por la ludo; kaj ankaŭ igis min
plibeligeti eligon de pretigi.sh
Summary of changes
2 files added
  • gemujo_ludo/flikaĵoj/esperantigi_modifaĵojn.awk
  • gemujo_ludo/flikaĵoj/esperantigi_modifaĵojn.sh
1 files modified with 61 lines added and 58 lines removed
  • gemujo_ludo/pretigi.sh with 61 added and 58 removed lines
diff -rN -u "old-gem-xwx-moe/gemujo_ludo/flika\304\265oj/esperantigi_modifa\304\265ojn.awk" "new-gem-xwx-moe/gemujo_ludo/flika\304\265oj/esperantigi_modifa\304\265ojn.awk"
--- "old-gem-xwx-moe/gemujo_ludo/flika\304\265oj/esperantigi_modifa\304\265ojn.awk"	1970-01-01 00:00:00.000000000 +0000
+++ "new-gem-xwx-moe/gemujo_ludo/flika\304\265oj/esperantigi_modifa\304\265ojn.awk"	2024-12-22 10:58:36.689359506 +0000
@@ -0,0 +1,25 @@
+#!/bin/awk -f
+# Nomo: esperantigi_modifaĵon.awk
+# Pri: Per Minetest’a tradukdosiero (*.*.tr), presas regulajn esprimojn
+#      sed-formajn kiuj anstataŭigus la originalan tekston per la
+#      traduko, se doniĝus al sed kiel parametro.
+# Dato: 2024-08-01
+# El: Ĵado Ajn <jadedctrl@posteo.at>
+
+BEGIN {
+	FS = "="
+}
+
+$0 ~ "=" {
+	gsub(/'/, ".", $1)
+	gsub(/"/, ".", $1)
+	gsub(/\^/, ".", $1)
+	gsub(/\[/, "\\[", $1)
+
+	gsub(/"/, "\\\"", $2)
+	printf("s^S(\"%s\"^S(\"%s\"^g; ", $1, $2)
+
+	gsub(/\\"/, "\"", $2)
+	gsub(/'/, "\"", $2)
+	printf("s^S('%s'^S('%s'^g; ", $1, $2)
+}
diff -rN -u "old-gem-xwx-moe/gemujo_ludo/flika\304\265oj/esperantigi_modifa\304\265ojn.sh" "new-gem-xwx-moe/gemujo_ludo/flika\304\265oj/esperantigi_modifa\304\265ojn.sh"
--- "old-gem-xwx-moe/gemujo_ludo/flika\304\265oj/esperantigi_modifa\304\265ojn.sh"	1970-01-01 00:00:00.000000000 +0000
+++ "new-gem-xwx-moe/gemujo_ludo/flika\304\265oj/esperantigi_modifa\304\265ojn.sh"	2024-12-22 10:58:36.689359506 +0000
@@ -0,0 +1,44 @@
+#!/bin/sh
+#―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
+# Nomo: esperantigi_modifaĵojn.sh
+# Pri:  Esperantigas modifaĵojn en dosierujo — forviŝante ĉiun alian lingvon.
+# Dato: 2024-08-01
+# Perm: GPLv3
+# El:   Ĵado Ajn <jadedctrl@posteo.at>
+#―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
+
+esperantigi_modifajhon() {
+	local mod="$1"
+	local IFS="
+"
+	if test -f "$mod/.eo"; then
+		return
+	elif test -f "$mod/locale/"*.eo.tr; then
+		local tmp="$(mktemp)"
+		printf "Esperantigas $(basename "$mod")…" 1>&2
+
+		esperantigi_modifaĵojn.awk "$mod/locale/"*.eo.tr > "$tmp"
+
+		sed --in-place \
+			--file="$tmp" \
+			$(find "$mod/" -name '*.lua')
+
+		rm "$tmp"
+		touch "$mod/.eo"
+		echo
+	elif test -d "$mod/locale"; then
+		echo "Neniu traduko por $mod!" 1>&2
+	fi
+}
+
+esperantigi_modifajharon() {
+	local ara_dosierujo="$1"
+	local mod_agordoj="$(find "$ara_dosierujo" -name mod.conf)"
+	local IFS="
+"
+	for mod_agordo in $mod_agordoj; do
+		esperantigi_modifajhon "$(dirname "$mod_agordo")"
+	done
+}
+
+esperantigi_modifajharon "$1"
diff -rN -u old-gem-xwx-moe/gemujo_ludo/pretigi.sh new-gem-xwx-moe/gemujo_ludo/pretigi.sh
--- old-gem-xwx-moe/gemujo_ludo/pretigi.sh	2024-12-22 10:58:36.685359500 +0000
+++ new-gem-xwx-moe/gemujo_ludo/pretigi.sh	2024-12-22 10:58:36.685359500 +0000
@@ -124,70 +124,72 @@
 
 # Flikas modifaĵojn por nia servilo.
 fliki() {
-	cp -r flikaĵoj/skinsdb/meta/*     mods.retaj/ludanto/skinsdb/meta/
-	cp -r flikaĵoj/skinsdb/textures/* mods.retaj/ludanto/skinsdb/textures/
-	rm mods.retaj/ludanto/skinsdb/textures/character_ghe_*        \
-	   mods.retaj/ludanto/skinsdb/meta/character_ghe_*            \
-	   mods.retaj/ludanto/skinsdb/textures/character_pro_kiki.png \
-	   mods.retaj/ludanto/skinsdb/meta/character_pro_kiki.txt
-
-	cd mods.retaj/fasado/public_death_messages/
-	git apply ../../../flikaĵoj/public_death_messages/*.patch
-	cd ../../../
-
-	cd mods.retaj/bestoj/mobs_redo/
-	git apply ../../../flikaĵoj/mobs_redo/*.patch
-	cd ../../../
-
-	cd mods.retaj/servilo/irc/irc/
-	git apply ../../../../flikaĵoj/lua-irc/*.patch
-	cd ../../../../
-
-	cp -r flikaĵoj/bonvenon/*.txt mods.retaj/servilo/bonvenon/
-	cd mods.retaj/servilo/bonvenon
-	git apply ../../../flikaĵoj/bonvenon/*.patch
-	cd ../../../
-}
+	if test ! -f mods/ludanto/skinsdb/.flikita; then
+		echo "Flikas skinsdb…" 1>&2
+		cp -r flikaĵoj/skinsdb/meta/*     mods/ludanto/skinsdb/meta/
+		cp -r flikaĵoj/skinsdb/textures/* mods/ludanto/skinsdb/textures/
+		rm mods/ludanto/skinsdb/textures/character_ghe_*        \
+		   mods/ludanto/skinsdb/meta/character_ghe_*            \
+		   mods/ludanto/skinsdb/textures/character_pro_kiki.png \
+		   mods/ludanto/skinsdb/meta/character_pro_kiki.txt
+		touch mods/ludanto/skinsdb/.flikita
+	fi
 
+	if test ! -f mods/fasado/public_death_messages/.flikita; then
+		echo "Flikas public_death_messages…" 1>&2
+		cd mods/fasado/public_death_messages/
+		git apply ../../../flikaĵoj/public_death_messages/*.patch
+		cd ../../../
+		touch mods/fasado/public_death_messages/.flikita
+	fi
 
-# Ligas fremdajn (`mods.retaj/*`) modifaĵojn kun niaj (`mods.niaj/*`) al `mods/`.
-ligi() {
-	# Forigi malnovajn ligilojn de la modifaĵaroj.
-	find mods/ -type l -exec rm {} \;
-
-	# Ligi ĉiujn modifaĵojn al la modifaĵaroj.
-	ligi_subdosierojn_al "mods.niaj/fasado" "mods/fasado"
-	rm mods/fasado/emoji # Provizore ne uzu!
-
-	ligi_subdosierojn_al "mods.retaj/armiloj" "mods/armiloj"
-	ligi_subdosierojn_al "mods.retaj/bazaj"   "mods/bazaj"
-	ligi_subdosierojn_al "mods.retaj/bestoj"  "mods/bestoj"
-	ligi_subdosierojn_al "mods.retaj/fasado"  "mods/fasado"
-	ligi_subdosierojn_al "mods.retaj/iloj"    "mods/iloj"
-	ligi_subdosierojn_al "mods.retaj/ludanto" "mods/ludanto"
-	ligi_subdosierojn_al "mods.retaj/medio"   "mods/medio"
-	ligi_subdosierojn_al "mods.retaj/mondo"   "mods/mondo"
-	ligi_subdosierojn_al "mods.retaj/ornamoj" "mods/ornamoj"
+	if test ! -f mods/bestoj/mobs_redo/.flikita; then
+		echo "Flikas mobs_redo…" 1>&2
+		cd mods/bestoj/mobs_redo/
+		git apply ../../../flikaĵoj/mobs_redo/*.patch
+		cd ../../../
+		touch mods/bestoj/mobs_redo/.flikita
+	fi
 
-	if test -n "$SERVILE"; then
-		ligi_subdosierojn_al "mods.niaj/servilo"  "mods/servilo"
-		ligi_subdosierojn_al "mods.retaj/servilo" "mods/servilo"
+	if test -d mods/servilo/ -a ! -f mods/servilo/irc/.flikita; then
+		echo "Flikas irc…" 1>&2
+		cd mods/servilo/irc/irc/
+		git apply ../../../../flikaĵoj/lua-irc/*.patch
+		cd ../../../../
+		touch mods/servilo/irc/.flikita
 	fi
 
-	# Renomi elstaretajn modifaĵojn.
-	mv mods/ornamoj/kotatsu mods/ornamoj/kotatsu_table
+	if test -d mods/servilo/ -a ! -f mods/servilo/bonvenon/.flikita; then
+		echo "Flikas bonvenon…" 1>&2
+		cp flikaĵoj/bonvenon/*.txt mods/servilo/bonvenon/
+		cd mods/servilo/bonvenon
+		git apply ../../../flikaĵoj/bonvenon/*.patch
+		cd ../../../
+		touch mods/servilo/bonvenon/.flikita
+	fi
+}
+
+
+kopii() {
+	rsync --recursive --ignore-existing \
+		  --exclude='/.minetest_game' \
+		  mods.retaj/ mods/
+	rsync --recursive --ignore-existing \
+		  mods.niaj/ mods/
+
+	rm -rf mods/fasado/emoji # Provizore ne uzu!
+	mv mods/ornamoj/kotatsu mods/ornamoj/kotatsu_table 2> /dev/null
+	rm -rf mods/ornamoj/kotatsu 2> /dev/null
+
+	if test -z "$SERVILE"; then
+		rm -rf mods/servilo/*/
+	fi
 }
 
 
-# Ligas ĉiun subdosieron de dosierujo al alia dosierujo.
-ligi_subdosierojn_al() {
-	local el="$1"
-	local al="$2"
-	for dosiero in "$el"/*; do
-		if test -e "$dosiero"; then
-			ln -s "$(pwd)/$dosiero" "$al/$(basename "$dosiero")"
-		fi
-	done
+esperantigi() {
+	local PATH="$PATH:flikaĵoj/"
+	esperantigi_modifaĵojn.sh mods/
 }
 
 
@@ -219,6 +221,7 @@
 	2>&1 \
 	| grep -v  'already exists and is not an empty directory' \
 		   1>&2
+kopii
 fliki
-ligi
+esperantigi
 agordi