Hi Hans, Nice code Hans!… But somehow your replacer code gives always « el » even in front of « señora »… It seems that your lua code for replacer sees « señor » and does not check whether it is « señora » or not. If one modifies a little bit the code into the following, the issue is solved: (changing « señora » into « senora ») %%%%%%%%%%% \startluacode
local replacer = lpeg.replacer { ["senora"] = "la señora", ["señor"] = "el señor", } function document.MaleOrFemale(str) context(lpeg.match(replacer,str)) end \stopluacode \unexpanded\def\MaleOrFemale#1% {\ctxlua{document.MaleOrFemale("#1")}} \starttext whatever \MaleOrFemale{señor Juan Martínez} and \MaleOrFemale{senora María Pérez} \stoptext %%%%%%%%%%% Is it possible to have your replacer check the entire first words? Best regards: OK > On 26 Jan 2015, at 18:43, Hans Hagen <pra...@wxs.nl> wrote: > > On 1/26/2015 5:49 PM, Pablo Rodriguez wrote: >> Dear list, >> >> I have the following sample: >> >> \starttext >> >> \def\Persona{señor Juan Martínez} >> \def\Persona{señora María Pérez} >> >> El/La \Persona\ ha aprobado. >> \stoptext >> >> How can I replace "El/La" in text with a command that can assign the >> proper article? >> >> I could use the translate module, but the real case is more complex than >> the previous sample. >> >> What I need in the command is that it can check the first word in the >> command \Persona and assign "el" or "la". >> >> Which is the right way to do this? > > \startluacode > > local replacer = lpeg.replacer { > ["señor"] = "el señor", > ["señora"] = "la señora", > } > > function document.MaleOrFemale(str) > context(lpeg.match(replacer,str)) > end > > \stopluacode > > \unexpanded\def\MaleOrFemale#1% > {\ctxlua{document.MaleOrFemale("#1")}} > > \starttext > > whatever \MaleOrFemale{señor Juan Martínez} and \MaleOrFemale{señora María > Pérez} > > \stoptext > > ----------------------------------------------------------------- > Hans Hagen | PRAGMA ADE > Ridderstraat 27 | 8061 GH Hasselt | The Netherlands > tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com > | www.pragma-pod.nl > ----------------------------------------------------------------- > ___________________________________________________________________________________ > If your question is of interest to others as well, please add an entry to the > Wiki! > > maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context > webpage : http://www.pragma-ade.nl / http://tex.aanhet.net > archive : http://foundry.supelec.fr/projects/contextrev/ > wiki : http://contextgarden.net > ___________________________________________________________________________________ ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________