Skip to content

Commit

Permalink
fix #1844: [FR] Fix support for 'ar-cf' template (#1849)
Browse files Browse the repository at this point in the history
  • Loading branch information
lasconic authored Oct 3, 2023
1 parent fdd5f60 commit d3f20a1
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 8 deletions.
2 changes: 1 addition & 1 deletion scripts/scripts_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def get_content(
retry += 1
except RequestException as err:
resp = err.response
if resp.status_code == 404:
if resp and resp.status_code == 404:
return ""
wait_time = 1
if resp is not None and resp.status_code == 429:
Expand Down
6 changes: 5 additions & 1 deletion wikidict/lang/fr/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -1087,12 +1087,16 @@ def last_template_handler(
f"ici, « {data['ici']} »"
if data["ici"]
else f"« {clean(racines_schemes_arabes[parts[1]][parts[0]])} »"
if parts[1] in racines_schemes_arabes
and parts[0] in racines_schemes_arabes[parts[1]]
else ""
)
sens = f"({sens})" if sens else ""

return (
f'<span style="line-height: 0px;"><span style="font-size:larger">{w}</span></span>'
f" <small>({scheme})</small>"
f" ({sens})"
f" {sens}"
)

if tpl == "ar-mot":
Expand Down
15 changes: 9 additions & 6 deletions wikidict/lang/fr/arabiser.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
Arabiser: manual conversion of Module:arabe from
https://fr.wiktionary.org/wiki/Module:arabe
Current version: 3 janvier 2023 15:21
https://fr.wiktionary.org/w/index.php?title=Module:arabe&oldid=31275068
Current version: 25 août 2023 11:50
https://fr.wiktionary.org/w/index.php?title=Module:arabe&oldid=32695780
"""
import unicodedata
Expand Down Expand Up @@ -529,7 +529,7 @@ def arabiser(texte: str) -> str: # pragma: no cover
if apres == "'" or apres == "²":
apres = texte[curseur + 2]

# derrière un i, support ya
# derrière un i, support ya sans point
if avant == "i" or avant == "î" or avant == "I" or avant == "y":
transcription += en_arabe["ì"]
# derrière un waw, hamza en ligne
Expand Down Expand Up @@ -919,7 +919,6 @@ def appliquer(scheme: str, racine: str, var: str = "") -> str: # pragma: no cov
and racine[1] not in {"*", ".", "?"} # "lettres" bidon dans les modèles
and position3
> -1 # si un petit malin propose un schème sans position 3 en redoublant la 2...
and scheme not in {"1a2aµũ", "1a2aµ@ũ"} # exception : doit rester intact.
):
# on est dans un cas "sourd"
position2 = scheme.find("2")
Expand All @@ -929,7 +928,11 @@ def appliquer(scheme: str, racine: str, var: str = "") -> str: # pragma: no cov
nature2 = nature(scheme, position2)

# initiale d'une syllabe ouverte, donc 2 porte une voyelle courte et 3 une voyelle.
if nature2 == "io":
# contraction sur les verbes (var~=""), formes verbales, ou sur les noms (var=="") dont l'infixe n'est pas de la forme *v*v* (voyelle courte avant la deuxième radicale). # noqa
# le cas des noms n'est pas très clair, mais on constate que les **v* sont contractés, et certains *v*v* ne le sont pas, on suppose que ce qui apparaissent contractés sont des *v** d'origine (?) # noqa
if nature2 == "io" and (
var != "" or var == "" and scheme[position2 - 1] not in "aiu"
):
if est_voyelle(
scheme[position2 - 1]
): # ie, la première radicale est vocalisée
Expand Down Expand Up @@ -989,7 +992,7 @@ def appliquer(scheme: str, racine: str, var: str = "") -> str: # pragma: no cov

# Inversement, les verbes où la troisième radicale est redoublée dans le schème doivent se
# conjuguer comme des sourds
# ie, si le schème contient un µµ ou un µ² il faut séparer les deux, et boucher le trou avec un "a".
# ie, si le schème contient un µµ ou un µ² devant une consonne il faut séparer les deux, et boucher le trou avec un "a" pour ne pas avoir trois consonnes d'affilée. # noqa
if scheme.find("µµ") > -1 or scheme.find("µ²") > -1:
scheme = sub(r"µ²", "µµ", scheme, count=1) # homogénéisation des cas
position3 = scheme.find("µµ")
Expand Down

0 comments on commit d3f20a1

Please sign in to comment.