Warning: include_once(/home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/wp-super-cache/wp-cache-phase1.php): Failed to open stream: No such file or directory in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/advanced-cache.php on line 10

Warning: include_once(): Failed opening '/home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/wp-super-cache/wp-cache-phase1.php' for inclusion (include_path='.:') in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/advanced-cache.php on line 10

Deprecated: Return type of WP_Theme::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-theme.php on line 554

Deprecated: Return type of WP_Theme::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-theme.php on line 595

Deprecated: Return type of WP_Theme::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-theme.php on line 535

Deprecated: Return type of WP_Theme::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-theme.php on line 544

Deprecated: Return type of WP_REST_Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/rest-api/class-wp-rest-request.php on line 952

Deprecated: Return type of WP_REST_Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/rest-api/class-wp-rest-request.php on line 972

Deprecated: Return type of WP_REST_Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/rest-api/class-wp-rest-request.php on line 984

Deprecated: Return type of WP_REST_Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/rest-api/class-wp-rest-request.php on line 995

Deprecated: Return type of WP_Block_List::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 151

Deprecated: Return type of WP_Block_List::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 175

Deprecated: Return type of WP_Block_List::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 164

Deprecated: Return type of WP_Block_List::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 186

Deprecated: Return type of WP_Block_List::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 138

Deprecated: Return type of WP_Block_List::offsetExists($index) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 75

Deprecated: Return type of WP_Block_List::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 89

Deprecated: Return type of WP_Block_List::offsetSet($index, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 110

Deprecated: Return type of WP_Block_List::offsetUnset($index) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 127

Deprecated: Return type of WP_Block_List::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/class-wp-block-list.php on line 199

Deprecated: Optional parameter $criteria declared before required parameter $revision_history is implicitly treated as a required parameter in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/jetpack/_inc/lib/class.media.php on line 290

Deprecated: Optional parameter $post_url declared before required parameter $height is implicitly treated as a required parameter in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/jetpack/class.jetpack-post-images.php on line 781

Deprecated: Optional parameter $value declared before required parameter $param is implicitly treated as a required parameter in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php on line 2397

Deprecated: Optional parameter $value declared before required parameter $param is implicitly treated as a required parameter in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php on line 2415

Deprecated: Optional parameter $value declared before required parameter $param is implicitly treated as a required parameter in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php on line 2446

Deprecated: Optional parameter $value declared before required parameter $param is implicitly treated as a required parameter in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php on line 2471

Deprecated: Optional parameter $value declared before required parameter $param is implicitly treated as a required parameter in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php on line 2489

Deprecated: Optional parameter $value declared before required parameter $param is implicitly treated as a required parameter in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php on line 2631

Deprecated: Optional parameter $value declared before required parameter $param is implicitly treated as a required parameter in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php on line 2660

Deprecated: Optional parameter $value declared before required parameter $param is implicitly treated as a required parameter in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php on line 2678

Deprecated: Optional parameter $slug declared before required parameter $attr is implicitly treated as a required parameter in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/jetpack/class.jetpack-gutenberg.php on line 690

Deprecated: Optional parameter $type declared before required parameter $args is implicitly treated as a required parameter in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/jetpack/modules/widgets/rsslinks-widget.php on line 175

Deprecated: Optional parameter $type declared before required parameter $required_field_text is implicitly treated as a required parameter in /home/sankarshan/sankarshan.randomink.org/blog/wp-content/plugins/jetpack/modules/contact-form/grunion-contact-form.php on line 3279

Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Cookie/Jar.php on line 63

Deprecated: Return type of Requests_Cookie_Jar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Cookie/Jar.php on line 73

Deprecated: Return type of Requests_Cookie_Jar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Cookie/Jar.php on line 89

Deprecated: Return type of Requests_Cookie_Jar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Cookie/Jar.php on line 102

Deprecated: Return type of Requests_Cookie_Jar::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Cookie/Jar.php on line 111

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 40

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 51

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 68

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 82

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 91

Deprecated: register_widget_control is deprecated since version 2.8.0! Use wp_register_widget_control() instead. in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/functions.php on line 4861

Deprecated: register_sidebar_widget is deprecated since version 2.8.0! Use wp_register_sidebar_widget() instead. in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/functions.php on line 4861

Warning: Cannot modify header information - headers already sent by (output started at /home/sankarshan/sankarshan.randomink.org/blog/wp-content/advanced-cache.php:10) in /home/sankarshan/sankarshan.randomink.org/blog/wp-includes/feed-rss2-comments.php on line 8
Comments on: …and here we go again http://sankarshan.randomink.org/blog/2008/12/16/and-here-we-go-again-2/ A collection of jottings on various issues that excite no one else Wed, 17 Dec 2008 12:35:54 +0000 hourly 1 https://wordpress.org/?v=5.6.13 By: choeger http://sankarshan.randomink.org/blog/2008/12/16/and-here-we-go-again-2/comment-page-1/#comment-66964 Wed, 17 Dec 2008 12:35:54 +0000 http://sankarshan.randomink.org/blog/?p=464#comment-66964 In reply to mui.

Yepp, pure community translation won’t work. But I think that any .po maintainer is pretty bored by translating the same sentences again and again. That leads to slow progress I have my own .po patches waiting for review on g-b-o since months.
A single DB where a lot of suggestions are stored could really speed up things (and help ensure quality also, when the transifex step is done by pros)

]]>
By: Runa http://sankarshan.randomink.org/blog/2008/12/16/and-here-we-go-again-2/comment-page-1/#comment-66954 Tue, 16 Dec 2008 16:51:48 +0000 http://sankarshan.randomink.org/blog/?p=464#comment-66954 In reply to Kevin Kofler.

*nod*

Thats the best approach because besides giving an early start, it effectively also allows corrections in the English strings (lots of them are spotted by the localizers) to go through fast. During string freeze, developers generally have to wait for permission from the localization group to make changes.
But yeah.. localizers also have to be mentally prepared to rework on bits because things change really fast.

]]>
By: mui http://sankarshan.randomink.org/blog/2008/12/16/and-here-we-go-again-2/comment-page-1/#comment-66953 Tue, 16 Dec 2008 16:25:27 +0000 http://sankarshan.randomink.org/blog/?p=464#comment-66953 Sorry, I missed this sentence “and then be reviewed by a professional .po maintainer.”

You are right, a real pro is crucial.

]]>
By: mui http://sankarshan.randomink.org/blog/2008/12/16/and-here-we-go-again-2/comment-page-1/#comment-66952 Tue, 16 Dec 2008 16:20:18 +0000 http://sankarshan.randomink.org/blog/?p=464#comment-66952 @choeger: I’ll tell you one story about our (classic commercial) product. We had translations done by unprofessional translators – native speakers. Then one day we started to get really weird support calls. It turned out, that one translator messed up one of the strings. It wasn’t a huge mistake but it was enough to cause confusion among users. It took us 6 months to pinpoint the issue to the incorrect translation.

Do not underestimate l10n.

]]>
By: Kevin Kofler http://sankarshan.randomink.org/blog/2008/12/16/and-here-we-go-again-2/comment-page-1/#comment-66951 Tue, 16 Dec 2008 15:57:16 +0000 http://sankarshan.randomink.org/blog/?p=464#comment-66951 > In fact with “string freeze” (or, the time when the developers hand off the English versions to the translators) the effective window to actually translate is around 1 month.

Solution: Actually start translating as the software is developed, don’t wait for the string freeze! Then you have more time.

]]>
By: choeger http://sankarshan.randomink.org/blog/2008/12/16/and-here-we-go-again-2/comment-page-1/#comment-66949 Tue, 16 Dec 2008 11:24:08 +0000 http://sankarshan.randomink.org/blog/?p=464#comment-66949 Translation _should_ be for hobbyists. Pretty all people that could deal with a given translation system, read the policy and so on, will speak (or at least read) English fluently. That means, they have little to no interest in translating things.
That has tow consequences:
1. Translations need to be really easy (on a “translate that string”-base)
2. Translations should re-use all translated strings they can get

That implies: One should set up a String-translation database to which normal users could send single fragments just when they come to their attention, po files (and other stuff) should be filled with the content of that db and then be reviewed by a professional .po maintainer.

How about that?

]]>