[issue10092] calendar does not restore locale properly

Boštjan Mejak report at bugs.python.org
Wed Oct 20 19:05:03 CEST 2010


Boštjan Mejak <bostjan.mejak at gmail.com> added the comment:

Thank you so much for your answer. The
locale.setlocale(category=locale.LC_NUMERIC,
locale="Slovenian")  works like a charm in my application. Now the 'n'
format specifier works as I want. But tell me whether the 'n' format
specifier can be forced to round the float to just one decimal place. I know
that the 'f' format specifier does that by specifying ".1f", but 'f' is not
locale-aware. I have set the 'n' format specifier in my application like
".3n", which is okay if the returned number is two integers and one decimal,
but is not okay if the returned number is one integer and two decimals,
because I want just one decimal, always. How can I make that by using the
'n' format specifier?

On Wed, Oct 20, 2010 at 11:37 AM, Tim Golden <report at bugs.python.org> wrote:

>
> Tim Golden <mail at timgolden.me.uk> added the comment:
>
> Boštjan, the code segment you quote is the *fallback* if the
> C module hasn't been built for some reason. The module simply
> calls through to the underlying C Library. I notice you're
> running on Windows, so this is a useful MS page:
>
> http://msdn.microsoft.com/en-us/library/x99tb11d%28VS.71%29.aspx
>
> and you can see there that a call of setlocale (LC_ALL, "English")
> is valid (of "French" if you prefer):
>
> Python 3.1.2 (r312:79149, Mar 21 2010, 00:41:52) [MSC v.1500 32 bit
> (Intel)] on win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import locale
> >>> locale.setlocale (locale.LC_ALL, "French")
> 'French_France.1252'
> >>>
>
> ----------
> nosy: +tim.golden
>
> _______________________________________
> Python tracker <report at bugs.python.org>
> <http://bugs.python.org/issue10092>
> _______________________________________
>

----------
Added file: http://bugs.python.org/file19306/unnamed

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue10092>
_______________________________________
-------------- next part --------------
Thank you so much for your answer. The  <span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse">locale.setlocale(category=locale.LC_NUMERIC, locale=&quot;Slovenian&quot;)  works like a charm in my application. Now the &#39;n&#39; format specifier works as I want. But tell me whether the &#39;n&#39; format specifier can be forced to round the float to just one decimal place. I know that the &#39;f&#39; format specifier does that by specifying &quot;.1f&quot;, but &#39;f&#39; is not locale-aware. I have set the &#39;n&#39; format specifier in my application like &quot;.3n&quot;, which is okay if the returned number is two integers and one decimal, but is not okay if the returned number is one integer and two decimals, because I want just one decimal, always. How can I make that by using the &#39;n&#39; format specifier?</span><div>
<font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br>
</span></font><div class="gmail_quote">On Wed, Oct 20, 2010 at 11:37 AM, Tim Golden <span dir="ltr">&lt;<a href="mailto:report at bugs.python.org" target="_blank">report at bugs.python.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
Tim Golden &lt;<a href="mailto:mail at timgolden.me.uk" target="_blank">mail at timgolden.me.uk</a>&gt; added the comment:<br>
<br>
Boštjan, the code segment you quote is the *fallback* if the<br>
C module hasn&#39;t been built for some reason. The module simply<br>
calls through to the underlying C Library. I notice you&#39;re<br>
running on Windows, so this is a useful MS page:<br>
<br>
<a href="http://msdn.microsoft.com/en-us/library/x99tb11d%28VS.71%29.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/x99tb11d%28VS.71%29.aspx</a><br>
<br>
and you can see there that a call of setlocale (LC_ALL, &quot;English&quot;)<br>
is valid (of &quot;French&quot; if you prefer):<br>
<br>
Python 3.1.2 (r312:79149, Mar 21 2010, 00:41:52) [MSC v.1500 32 bit<br>
(Intel)] on win32<br>
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.<br>
&gt;&gt;&gt; import locale<br>
&gt;&gt;&gt; locale.setlocale (locale.LC_ALL, &quot;French&quot;)<br>
&#39;French_France.1252&#39;<br>
&gt;&gt;&gt;<br>
<br>
----------<br>
nosy: +tim.golden<br>
<div><div></div><div><br>
_______________________________________<br>
Python tracker &lt;<a href="mailto:report at bugs.python.org" target="_blank">report at bugs.python.org</a>&gt;<br>
&lt;<a href="http://bugs.python.org/issue10092" target="_blank">http://bugs.python.org/issue10092</a>&gt;<br>
_______________________________________<br>
</div></div></blockquote></div><br>
</div>


More information about the Python-bugs-list mailing list