Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -847,11 +847,13 @@ TEST: __liga__ un {{fl}}ottement ->> fl TEST: __liga__ une belle {{fi}}gure ->> fi -# Apostrophe typographique +!!!! Apostrophes + +## Apostrophe typographique __[i>/apos(apostrophe_typographique)__ ([ldsncjmç]|jusqu|lorsqu|aujourd|presqu|quelqu|puisqu|qu|prud|entr)['´‘′`](?=[\w"«]) @@0 <<- ->> \1’ # Apostrophe typographique. __[i>/apos(apostrophe_typographique_après_t)__ t['´‘′`](?!ils?|elles?|on)(?=[\w"«]) <<- ->> t’ # Apostrophe typographique. @@ -896,11 +898,12 @@ TEST: Il {{s }}était dit qu’il ne le ferait pas. ->> s’ TEST: Je {{m }}étais imaginé que je pourrais pas retrouver cet objet. ->> m’ TEST: Je {{n }}ai pas retrouvé l’ambiance de mes années de lycée. ->> n’ -# Guillemets typographiques +!!!! Guillemets typographiques + __/typo(typo_guillemets_typographiques_doubles_ouvrants)__ "(?=\w) <<- not before(r"[a-zA-Zéïîùàâäôö]$") ->> « |“ # Guillemets typographiques ouvrants. __/typo(typo_guillemets_typographiques_doubles_fermants)__ [\w.?!…,](")(?!\w) @@* @@ -907,24 +910,40 @@ <<- -1>> " »|”" # Guillemets typographiques fermants. TEST: {{"}}Le grand homme.” ->> « |“ TEST: “Le grand homme.{{"}} ->> " »|”" + +__/typo(typo_guillemets_typographiques_simples_doubles_ouvrants)__ + (?:^|[ –—-])('')(?=\w) @@* + <<- -1>> « |“ # Guillemets typographiques ouvrants. +__/typo(typo_guillemets_typographiques_simples_doubles_fermants)__ + [\w.?!…,]('')(?![\w'’]) @@* + <<- -1>> " »|”" # Guillemets typographiques fermants. + +TEST: {{''}}Ça{{”}} recommence. ->> « |“||| +TEST: Le {{''}}grand{{”}} homme. ->> « |“||| +TEST: Le {{“}}grand{{''}} homme. ->> " »|”|||" + __/typo(typo_guillemets_typographiques_simples_ouvrants)__ - (?:^|[ –—-])(''?)(?=\w) @@* - <<- -1>> “|‘ # Guillemets typographiques ouvrants. + (?:^|[ –—-])(')(?=\w) @@* + <<- -1>> “|‘|‹ # Guillemets typographiques ouvrants. __/typo(typo_guillemets_typographiques_simples_fermants)__ - [\w.?!,](''?)(?![\w']) @@* - <<- -1>> ”|’ # Guillemets typographiques fermants. + [\w.?!,](')(?![\w']) @@* + <<- -1>> ”|’|› # Guillemets typographiques fermants. -TEST: Le {{'}}grand’ homme. ->> “|‘ -TEST: Le ‘grand{{'}} homme. ->> ”|’ +TEST: {{'}}Ça’ recommence. ->> “|‘|‹ +TEST: Le {{'}}grand’ homme. ->> “|‘|‹ +TEST: Le ‘grand{{'}} homme. ->> ”|’|› TEST: J’en ai '''marre''' (syntaxe wiki). -## Élisions + + +!!!! Élisions + __[i]/typo(typo_élision_déterminants)__ (l[ea] |de )([aâeéêiîoôu]\w+) @@0,$ <<- not re.search("(?i)^(?:onz[ei]|énième|iourte|ouistiti|ouate|one-?step|ouf|Ouagadougou|I(?:I|V|X|er|ᵉʳ|ʳᵉ|è?re))", \2) and not \2.isupper() and not morph(\2, ":G", False) -1>> =\1[0]+"’" # Élision de l’article devant un mot commençant par une voyelle.|http://fr.wikipedia.org/wiki/Élision @@ -946,10 +965,12 @@ <<- not re.search("(?i)^(?:onz|énième|ouf|énième|ouistiti|one-?step|I(?:I|V|X|er|ᵉʳ))", \2) and morph(\2, ":[me]") -1>> cet # Euphonie : « ce » devient « cet » devant un mot commençant par une voyelle. TEST: {{ce}} animal est dangereux + +!!!! Divers ## NF (memo: don’t use flag i) __[s]/nf(nf_norme_française)__ [nN][fF][  -]?(?:c|C|e|E|p|P|q|Q|s|S|x|X|z|Z|[eE][nN](?:[  -][iI][sS][oO]|))[  -]?[0-9]+(?:[/ ‑-][0-9]+|) <<- not re.search("^NF (?:C|E|P|Q|S|X|Z|EN(?: ISO|)) [0-9]+(?:‑[0-9]+|)", \0)