GNOME Bugzilla – Bug 553770
e_time_get_d_fmt_with_4digit_year: Correct %y replacement
Last modified: 2017-08-28 10:50:53 UTC
Incorrect translation Application: Evolution Incorrect text: When you want to add an event in Persian locale, in the Time field (مدت), the year is presented as %OY instead of the year in Persian, and it prevents you from adding the event since it says: Invalid Date Should be: First, you should see the current year correctly presented in Persian digits, and you should be able to add an event and it should not complain about Invalid Date.
Hedayat, I don't understand the bug exactly. Would you please give me these: * Evolution version * An exact procedure to reproduce the bug (something like: 1. Open Evoltion. 2. Choose "Calendars" from the bottom of left-side panel. 3. Click on "New" on the top-left corner. ...) * A screenshot perhaps? I am not sure if this is an i18n bug (that would need a quick work-around in L10n) or an actual L10n bug.
Created attachment 119429 [details] an screen shot of the problem
OK, sorry: -> evolution version: 2.22.3.1 -> 1. Do exactly what you said (steps 1,2,3). 2. Fill in the summary and Location fields with whatever you like. 3. Select a time in future 4. Press "Save" 5. You'll see an error message! (6. After closing the error message and pressing "save" again, I saw another error message! Previously I just saw the English error message but the Persian error message which now appears in step 5 is new to me :) Anyway, I should not see the error message) -> I've attached an screenshot taken after step 6
Thanks a lot. I confirm the bug. Interestingly, I cannot find any message saying "%OY" in evolution translations. Investigating...
OK, this is a bug in evolution-data-server. The source file is "libedataserver/e-time-utils.c", the function "e_time_get_d_fmt_with_4digit_year": Here, the C library (glibc here) is asked for a date string. For Persian, "%Oy/%Om/%Od" will be returned (valid). Then the function goes on and replaces "y" with "Y", resulting in "%OY/%Om/%Od", which is invalid, since "%OY" is not defined in Single Unix Specification and not supported in glibc.
close to 4 months and still no activity, I wonder how hard is changing that replacement!! This bug makes evolution unusable in fa locale. :(
There are bugs waiting in GNOME bugzilla with no activity for years. But since you are a programmer yourself, why don't you consider writing a patch? (Count on my help, if you needed it.)
Wow! Even such small and really problematic bugs?! :( !! In fact, I've never thought about it :) Downloading a large code and its dependencies just for a small patch is a little weird!! OK! I'll add it to my TODO. But unfortunately I think that I won't have such free time at least for some weeks... :(
The problem of alternative digits that originally causes this problem is fixed on glib (https://bugzilla.gnome.org/show_bug.cgi?id=658107). But seems that evolution is using something else. I thought maybe the solution of glib developers give an idea to evolution developers to fix this issue. This bug is most annoying bug for non-english users with local numbers. thanks
Created attachment 206225 [details] Screenshot Running Evolution 3.2 with LANG=fa_IR.utf8 and adding a new appointment this is still a problem.
Running Evolution 3.10 With Persian locale and the problem still persist.
Let's make the e_time_get_d_fmt_with_4digit_year() replace only "%y" sequences, and keep "%<anything>y" sequences untouched. That will make the function return non-4-digit date format for locales with such predefined formats, but I think it's better than breaking UI. Created commit 3a86b30 in eds master (3.25.92+)