Call for help: Yii Internationalization

Dear Yii folks,

We are calling for your help to translate various components of Yii into the languages listed below. Since this requires tremendous long-term effort from our community, we created a new Google project named yiidoc to manage the process.

If you are willing to participate, please PM me with your gmail account, the language to you want to translate, and the component(s) that you want to work on.

The following page shows the current yiidoc members:

http://code.google.com/p/yiidoc/source/browse/trunk/members.txt

Thank you for your contributions!

Hi Qiang,

In contrast to the e-mail I have sent, you have put me on the list for Russian translation. Unfortunately I am not Russian, and have put myself forward to help on the Dutch translation.

Could you please correct this?

Cheers, Sacha

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!