Hi Stephan<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">First, I think extending this from Persian to English already shows the biggest flaw of this approach:  Do you want to extend in in this way for all languages supported by LibO?</blockquote>
<div>Yes, I was trying to make it more generic so can be used by more languages. But maybe I should not,<br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
  I would consider such extension to additional languages a localization task, a task that typically only consists of translating string resources.</blockquote><div>Well at least for persian it is almost translating strings, but there is some exceptions in translation<br>
which prevent me from using a word by word translation.<br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Here, however, someone doing localization would need to add new constants to NumberingType.idl and would need to add code to defaultnumberingprovider.cxx.  That does not feel right.<br>
</blockquote><div>OK, I&#39;m just started to work with libreoffice code ;) Just searched for a similar feature which<br>recently has been added, and used it as a templated to how to write code.<br>Please, Would you mind tell me what is right in this case? How should I write code for localizing numbers<br>
which best fits? <br></div><div><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
That said, concentrating on details of the code:<br>
<br>
- At least I do not like macros very much.  But at least DEFINE_WORD_TABLE is local to a single .cxx.<br></blockquote><div>OK <br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

- In C++, no need for<br>
<br>
  typedef struct {…} NumberWordTable;<br>
<br>
Instead, use the shorter<br>
<br>
  struct NumberWordTable {…};<br></blockquote><div>OK, thanks to mention. <br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
- &quot;the second table is used for irregular cardinal numbers is not empty&quot;: should probably read &quot;if not empty&quot;?<br></blockquote><div>Sorry for typos <br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

- In<br>
<br>
  sal_Unicode *(table1[2][8]);<br>
<br>
the superfluous parentheses are IMO confusing, and the sal_Unicode data should really be const, so rather<br>
<br>
  sal_Unicode const * table1[2][8];<br>
<br>
- For the Persian characters (that cannot be given visibly in an ASCII-only .cxx file, anyway) the practice of specifying sal_Unicode strings as sequences of individual characters (a la {0x0635,0x062f,0}) appears acceptable.  However, for English strings, {&#39;o&#39;,&#39;n&#39;,&#39;e&#39;,0} vs. &quot;one&quot; is hard to tolerate.  Maybe all the data should be specified as UTF-8 instead, using literal &quot;…&quot; strings (the literal Persian UTF-16 characters like 0x0635 become a little harder to maintain, having to encode them as UTF-8 like &quot;\xXX\xYY&quot;), and explicitly converting to rtl::OUString when used.<font color="#888888"><br>
</font></blockquote><div>Thanks,<br></div><div>Yes, but I think as you said it is better to use UTF-8, one of my problems was defining a two dimensional<br>array to hold strings with variable length, first I used (sal_Unicode[]){0x0635, ...}, but a feedback from <br>
community was &quot;It&#39;s not C++03 compatible&quot;, so used constant length arrays which do not like them.<br>But by changing it to UTF-8, it even makes the persian strings more tolerable.<br><br>Thanks for useful comments ;)<br>
<br>Thanks<br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><font color="#888888">
-Stephan</font></blockquote><div class="h5"><br>
</div></div><br>