Call for help: Yii Internationalization

Sorry, my bad. Corrected.

Qiang, you gave me access to yiidoc, but I can't see me in Russian translators.

oops, I guess that's why I put Sacha in the wrong group. Fixed.

Hi Qiang,

The last part of the guide says:

Quote

If you found any typos or errors in the tutorial, please create a Yii ticket to report it. If it is a translation error, please create a Yiidoc ticket, instead. Thank you.

I(or actually other guys) would like to see in the native language such as Japanese. Or do you think it is not needed?

hmm…those are hardcoded in the project site view. Let's skip it for now…

OK. I just leave it as it is for a while.

Well, I am translating the document and have found another small problem as below.

In the markdown format, blockquote info can be expressed like

> info: This is a block quote sentence.

and it is going to be

<blockquote class="info">Info: This is a block quote sentence.

It works pretty when a word is something like 'info' but it won't look pretty with the word such as '情報' (multi-byte characters) because the class name drops off. It may come from the third party's code named markdown.php and I was not able to fix it so far. Should I leave it as it is for a while as well?

Yes, please leave the word "info" untranslated. It is used to format the blockquote. Thanks.

Qiang,

some questions/thoughts about translation:

  1. Not sure if i overlooked something, but is there a way to see/test the HTML output of the translations?

  2. How can we make sure that the translated guide keeps track of changes to the english version?

  3. For other translators: I think, an excellent framework should have an excellent documentation ;). So to assure good quality and consistency of the translations i suggest to create translation guidelines in the yiidoc wiki for each language. I’ll make a start with German…

  1. When I get time, I will add an app to yiidoc to allow viewing the translation in HTML.

  2. I can't think of a good way to synchronize the guide translations. Perhaps each page translation should keep a revision ID of the original page so that in future a new revision is found with the original page, the translation can be synchronized accordingly.

  3. Maybe start with an English version first? ;)

Quote

3. Maybe start with an English version first? ;)

Not sure if we have that much influence on the english version and i guess, you already have such a guide somewhere your brain ;). But anyway, here at least the vision i put to the german wiki guideline (in german of course):

Quote

Yii is an excellent framework with all but exemplary code. In the same way the documentation should be outstanding by good readability. That's why we try to give some guidance for translation here.

Quote

2. How can we make sure that the translated guide keeps track of changes to the english version?

I saved a second local copy of the english source for my translations as of yesterday. I will use them for a future diff comparison if needed. I also write protected the local svn copy of the source in order to easily track changed files (not write protected). There might be better ways…

/Tommy

Quote

Yes, please leave the word "info" untranslated. It is used to format the blockquote. Thanks.

Is this also true for "Note", "Tip", etc?

Quote

Yes, please leave the word "info" untranslated. It is used to format the blockquote. Thanks.

OK.

Quote

Is this also true for "Note", "Tip", etc?

My investigation tells yes. These are translated in HTML as '<blockquote class="tip/info/note etc.">', when the word has '>' in the beginning of a sentence.

Quote

Is this also true for "Note", "Tip", etc?

It indeed is, and I would suggest this modification of MarkdownParser.php:



	public function _doBlockQuotes_callback($matches)


	{


		...


		# Do blockquote tips/notes


		//$bq = preg_replace_callback('/^(s*<p>s*)([a-z]+):s*/sxi',


		$bq = preg_replace_callback('/^(s*<p>s*)([a-z]+)([ ]*)([S]*):s*/sxi',


			array($this, 'doBlockquoteTypes'), $bq);


		$attr= $this->_blockquoteType ? " class="{$this->_blockquoteType}"" : '';


		return "n". $this->hashBlock("<blockquote{$attr}>n$bqn</blockquote>")."nn";


	}




	public function doBlockquoteTypes($matches)


	{


		$this->_blockquoteType = strtolower($matches[2]);


		//$type_str= ucwords($this->_blockquoteType);


		$type_str= ucwords($matches[4]?strtolower($matches[4]):$this->_blockquoteType);


		return "<p><strong>$type_str:</strong> ";


	}


Should be backward compatible and extended format then becomes:



...


> originaltoken translatedtoken: text block


...


At least this works for my translation and national characters (åäö).

/Tommy

Edit: I guess we could match zero or no more than one literal space character as separator (or some other separator such as '/'). I'm not sure about the regexp syntax for 0…1 cardinality.

I think this is a good solution to the problem. I will implement it. Thanks!

Thanks Tommy. :D As it is working very well, I can continue to do the translation.

What ever,I hope you are very lucky!

Would it be useful to translate into languages like Filipino who mostly use English, I was thinking there is a greater chance of more local popularity if it is in the national language?

Qiang,

There is a difference between the guide (http://www.yiiframework.com/doc/guide/) and the helper application index.php in SVN.

When I turn the page to Japanese by clicking, japanese toc.txt is displayed according to the langueage in terms of the helper application of the index.php. On the ohter hand, it is not shown in the guide.

Please fix it some day.