Foros de discusión

Translations work system

thumbnail
Juan Fernández, modificado hace 14 años.

Translations work system

Liferay Legend Mensajes: 1261 Fecha de incorporación: 2/10/08 Mensajes recientes
Hi guys:

reading this post about the Indian translation, I have realized that when a group of people try to work together to translate Liferay to a new language, they have to split the file into sections and then unite them again after everyone's individual work.

That may lead to inconsistencies in translations, it's a difficult system, and it makes collaboration a hard work.

I have never participated in any Liferay translation team, but I have participated in Ubuntu and they are very well organized, with an online tool (Launchpad) that allows the users to search the words that are similar, words left to finish the current translation and so on.

I'd like to ask you what do you think about this, how can we improve this branch of the Liferay community and so on...

Let's discuss, guys
Regards
Juan Fernández
thumbnail
Manish Kumar Gupta, modificado hace 14 años.

RE: Translations work system

Liferay Master Mensajes: 535 Fecha de incorporación: 16/05/08 Mensajes recientes
Thanks Juan for raising this question.

I was thinking about it in last few days as we are going to start Hindi translation and the other community member who is going to contribute in this work is not having commit access.

I didn't find best way to do that and was thinking to proceed with split strategy. Hope, someone can provide a better idea.
thumbnail
Juan Fernández, modificado hace 14 años.

RE: Translations work system

Liferay Legend Mensajes: 1261 Fecha de incorporación: 2/10/08 Mensajes recientes
Hi Manish:
I was actually thinking in searching a software tool like the mentioned above and study it's integration in to liferay.com. Do you know any tool like this?

Maybe another way to do this is by creating a public Wiki node with all the words and sentences to translate so that anyone can update it and changes are controlled

[update: we can test this tool: Pootle]
thumbnail
Bavithra Rajendran, modificado hace 14 años.

RE: Translations work system

Regular Member Mensajes: 123 Fecha de incorporación: 8/10/09 Mensajes recientes
Hi !

On reading this post, I like to post this tool Quillpad for Indian Translation (www.quillpad.in) which is very effective and people can have a check with their editors. I am not sure this can be integrated with liferay and further I am not sure about whether its open source or not. But it works (www.quillpad.in/editor.html) very effectively in Indian translation.
thumbnail
Corné A, modificado hace 14 años.

RE: Translations work system

Liferay Legend Mensajes: 1313 Fecha de incorporación: 3/10/06 Mensajes recientes
I can't find it .. but some years ago there was a suggestion on a Wiki style collaboration in translating Liferay.

The most important thing is (word) consistency in translation.
Because the keys are not grouped on Portlet/Portal/Functionality/etc this is hard to achieve with sectioning.

I know by doing this it now is a burden to translate.

IMHO a translation system should have;
- Roles (Head Editor,Editors)
- Voting for translation arguments.
- Assigning Sections ?
- Search
- Reference to source context (where is it used)
- Auto Translated marker
thumbnail
Olaf Kock, modificado hace 14 años.

RE: Translations work system

Liferay Legend Mensajes: 6396 Fecha de incorporación: 23/09/08 Mensajes recientes
I enthusiastically agree with the wish for a tool to translate. I once intended to find or start one, but - you might expect - it kept being an intent. Probably because the "(Automatic translation)" mechanism took enough of the burden translating new features, that the priority just dropped enough that I didn't feel the need to immediately tackle the issue.
thumbnail
Juan Fernández, modificado hace 14 años.

RE: Translations work system

Liferay Legend Mensajes: 1261 Fecha de incorporación: 2/10/08 Mensajes recientes
The next step is: do we agree a web application would be the best approach?

In that case we should start looking for a tool that allows doing all the things we are talking about

Translators: it's time to speak up! emoticon
thumbnail
Corné A, modificado hace 14 años.

RE: Translations work system

Liferay Legend Mensajes: 1313 Fecha de incorporación: 3/10/06 Mensajes recientes
I vote for a online webapplication
thumbnail
Olaf Kock, modificado hace 14 años.

RE: Translations work system

Liferay Legend Mensajes: 6396 Fecha de incorporación: 23/09/08 Mensajes recientes
+1.

When I thought about that a while ago there were a number of desirable features that came to my mind. I'll just dump those that I currently remember here - might somebody else (or my later self) prioritize or ignore them. This way they're at least public.

Also, I'd like to point to this thread with a few more rationales and targets to aim for. The following list might actually be the list I intended to publish (as said in that thread)

  • Present english and target language side by side
  • Allow comments regarding the translations (targeted at those that come back for more translations later)
  • Allow comments about shortcomings of the english original (targeted at those in charge of the english original - they might need to clarify if a single word is imperative, noun, verb or whatever)
  • Keep track of multiple suggestions (and one accepted solution). While we're at it: vote for favourite entries
  • Allow to have a vocabulary displayed (this will help to use the same term in target language for the same term in english). This might display available translations for other entries containing the same english words as the currently translated one.
  • Filter terms to be presented (e.g. useful to filter for "Automatic Translation" to find new entries)
  • Keep track of the author of the translation for credits and licensing issues
  • As the current language resources are huge: Keep track of where in the file I am - visualize it.
  • Mark entries as "I'm happy with this", "Can be better", "No-Go" or similar - preferably personalized. This is like a structured approach at the comments desired earlier


I know that this is way too much to tackle in a first version, but isn't it nice to have a vision? ;-)
As I said: Prioritize or ignore. Also: Please add your ideas! Ask if some suggestion is too vague or confusing - this is just dumped quickly.
thumbnail
Juan Fernández, modificado hace 14 años.

RE: Translations work system

Liferay Legend Mensajes: 1261 Fecha de incorporación: 2/10/08 Mensajes recientes
Hi Olaf:
this sounds amazing, but I think none of us can develop such a tool now. It may be out of Liferay goals and it may be A LOT of work for a community member.

I suggest to focus in searching a collaborative translation tool (already built) that covers those requirementes we're talking about

There are hundreds of OpenSource projects like ours, that should have had the SAME problem, why don't we do some research so that we don't have to reinvent the wheel?

Do you know other project's translation groups? How do they organize their teams? Which tools do they use?
thumbnail
Olaf Kock, modificado hace 14 años.

RE: Translations work system

Liferay Legend Mensajes: 6396 Fecha de incorporación: 23/09/08 Mensajes recientes
I was hoping that I didn't kill the discussion with this post - sadly it seems, I did. Sorry for that.

I fully understand that this would be outside of this scope - the single features somehow came from different perspectives. E.g. I'd like to be able to place comments in the .native files, just as the "(Automatic Translation)" and "(Automatic Copy)" markers are. But as the file will be read and written again, it quickly became somewhat complicated to identify the collateral damage. I still need to investigate this - have the nagging feeling that there must be an easy solution.

Of course, once the multi-user-online-criterion comes into sight, it all gets way more complicated...

I'd be very happy to see what the market has to offer. The linked threads also have some links to tools available.
thumbnail
Corné A, modificado hace 14 años.

RE: Translations work system

Liferay Legend Mensajes: 1313 Fecha de incorporación: 3/10/06 Mensajes recientes
I found this launchpad.net and opened a liferay account.
Is there anyone who has experience with this tool?

https://translations.launchpad.net/liferay/trunk
thumbnail
Olaf Kock, modificado hace 14 años.

RE: Translations work system

Liferay Legend Mensajes: 6396 Fecha de incorporación: 23/09/08 Mensajes recientes
"This project is not using Launchpad for translations." ... I meant to look into that a year ago, but didn't.

If you want to test this - please add me to the team. "okock" is my account on launchpad.
thumbnail
Corné A, modificado hace 14 años.

RE: Translations work system

Liferay Legend Mensajes: 1313 Fecha de incorporación: 3/10/06 Mensajes recientes
You were too fast ;)
Didn't even do the right things;

AFAIK it's public so you should be able to join when you login.

There is something on importing (automatic) translation files in GNU gettext .pot template files.

If anyone has a clue ?
Maye we should investigate other projects.
It looks promising as some features you mentioned seem available.
thumbnail
Tobias S. Käfer, modificado hace 14 años.

RE: Translations work system

Regular Member Mensajes: 128 Fecha de incorporación: 28/03/08 Mensajes recientes
Corné A:
There is something on importing (automatic) translation files in GNU gettext .pot template files.


I found this in the pottle-wiki about converting Java *.properties files to *.pot/*.po files.
thumbnail
Olaf Kock, modificado hace 14 años.

RE: Translations work system

Liferay Legend Mensajes: 6396 Fecha de incorporación: 23/09/08 Mensajes recientes
Sorry, seems I currently don't get what launchpad expects from me. I guess something would need to be imported first, right? Currently I don't see any point to start.

Is this GNU-gettext focussed, or do they provide more means of keeping i18nized content?

I'll keep trying
thumbnail
Juan Fernández, modificado hace 14 años.

RE: Translations work system

Liferay Legend Mensajes: 1261 Fecha de incorporación: 2/10/08 Mensajes recientes
Um... I think we have a problem there with the file types, Olaf...
Let's go on with this research
thumbnail
Tobias S. Käfer, modificado hace 14 años.

RE: Translations work system

Regular Member Mensajes: 128 Fecha de incorporación: 28/03/08 Mensajes recientes
Corné A:
I found this launchpad.net and opened a liferay account.
Is there anyone who has experience with this tool?

https://translations.launchpad.net/liferay/trunk


Anything is better than the current approach (as Olaf an I where experiencing with the German translation some days ago). I just joined the launchpad Liferay project.

Another software I found is pootle:
http://translate.sourceforge.net/wiki/pootle/index
It is used for the translation of OpenOffice (http://pootle.sunvirtuallab.com/) and other community based translations (see http://translate.sourceforge.net/wiki/pootle/live_servers).
I did not do any deeper research on pootle and I don't have any experience with that tool, but it sounds interesting at the first glimpse....


I have been translating to German since about Liferay 3.6.x or so.
It was bad at "those days" and it is becoming even more worse with every release.

The main issue for me is:
What about Liferay? Is there any position at Liferay? Do they ignore these complaints? What is their plan? Is there a plan?
thumbnail
Milan Jaroš, modificado hace 13 años.

RE: Translations work system

Expert Mensajes: 268 Fecha de incorporación: 18/08/08 Mensajes recientes
I have discussed Pootle with authors and this week they expect new beta that should natively support .properties file (i.e. without any workarounds using prop2po like before).
I'm looking forward for integration with Liferay svn. ;)
thumbnail
Julio Camarero, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 1668 Fecha de incorporación: 15/07/08 Mensajes recientes
Hey Milan,

I would be very interested in testing this tool. Can you let me know when the beta is realeased so that we can test it?

Thanks so much! emoticon
thumbnail
Milan Jaroš, modificado hace 13 años.

RE: Translations work system

Expert Mensajes: 268 Fecha de incorporación: 18/08/08 Mensajes recientes
Hi Julio,
Pootle has 2.1-beta1 version with .properties files implemented. You can use it for test purpose. If you would like any help with this, you can e-mail me SSH access. ;)

Looking forward for better translator's life.
thumbnail
Julio Camarero, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 1668 Fecha de incorporación: 15/07/08 Mensajes recientes
Thanks a lot Milan!!

I am going to test it today.... I hope we can use it! emoticon
thumbnail
Milan Jaroš, modificado hace 13 años.

RE: Translations work system

Expert Mensajes: 268 Fecha de incorporación: 18/08/08 Mensajes recientes
I hope too. Current localization process is not comfortable so much. ;)

Please, if you will have any issues you should report it here:
http://bugs.locamotion.org/

They are open to any improvement requests too. ;)
thumbnail
Julio Camarero, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 1668 Fecha de incorporación: 15/07/08 Mensajes recientes
cool, I will! emoticon
thumbnail
Milan Jaroš, modificado hace 13 años.

RE: Translations work system

Expert Mensajes: 268 Fecha de incorporación: 18/08/08 Mensajes recientes
Hi Julio,
I am not sure what is the preference of Liferay. It is possible to have hosted solution on http://pootle.locamotion.org/ or we can install it.
I can help you with the second solution. AFAIK you are using CentOS which is based on RPM. I have found list of supported distro's but I'm not sure about compatibility.

Regards,
Milan
thumbnail
Julio Camarero, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 1668 Fecha de incorporación: 15/07/08 Mensajes recientes
Hi Milan,

we are trying to install pootle in a windows machine in our servers rack. We are not sure if it will fit all our needs, we might develop our own tool... but I will reach you if we find any problem about it and I will try to keep all the translators in the loop.

Thanks a lot!
thumbnail
Milan Jaroš, modificado hace 13 años.

RE: Translations work system

Expert Mensajes: 268 Fecha de incorporación: 18/08/08 Mensajes recientes
Okay. I have tested it locally and it was looking fine from my point of view. But if you think this would not be helpful for the future localisation management I can reconcile with this.
thumbnail
Julio Camarero, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 1668 Fecha de incorporación: 15/07/08 Mensajes recientes
Sorry, I said we were going to install it in a windows machine but I was wrong... we only have centos as you said emoticon
thumbnail
Jonas X. Yuan, modificado hace 13 años.

RE: Translations work system

Liferay Master Mensajes: 993 Fecha de incorporación: 27/04/07 Mensajes recientes
I vote for an online web application, too.
thumbnail
Corné A, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 1313 Fecha de incorporación: 3/10/06 Mensajes recientes
Jaros,
Thanks for the follow up.

sounds promissing
thumbnail
Milan Jaroš, modificado hace 13 años.

RE: Translations work system

Expert Mensajes: 268 Fecha de incorporación: 18/08/08 Mensajes recientes
Don't mention it. I am just self-seeker and I do it just for my future comfort. emoticon
thumbnail
Milan Jaroš, modificado hace 13 años.

RE: Translations work system

Expert Mensajes: 268 Fecha de incorporación: 18/08/08 Mensajes recientes
Hi all,
I have prepared Pootle 2.1 windows installation pack. So if you are interested in it and you want to try it you can perform installation easily.

To understand what is in the package see install.bat:
python-2.6.5.msi
lxml-2.2.win32-py2.6.exe
python-Levenshtein-0.10.1.win32-py2.6.exe
Django-1.2.1\setup.py install
Translate-Toolkit-1.8.0-setup.exe
cd south
setup.py install
cd ..\Pootle-2.1.0
manage.py syncdb
manage.py runserver

Regards,
Milan
thumbnail
Milan Jaroš, modificado hace 13 años.

RE: Translations work system

Expert Mensajes: 268 Fecha de incorporación: 18/08/08 Mensajes recientes
Hi,
it seems there are no capacities to maintain pootle on liferay.com domain - it is not trivial to configure it with adherent performance. It is possible to host Liferay project on official Pootle server. I just need SVN account "pootle" with write access to http://svn.liferay.com/repos/public/portal/trunk/portal-impl/src/content/.

Regards,
Milan
thumbnail
Jorge Ferrer, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 2871 Fecha de incorporación: 31/08/06 Mensajes recientes
Hi Milan,

Julio is still checking if it would be possible to install Pootle in one of the Liferay servers.

We can also check the option to host it in the official pootle server. I followed the link in your post but it seems an installation for an specific project. Do you have a link to a description on what are the conditions to do that?

Also, assuming you know pootle well. How hard would it be to develop a portlet with that same functionality? Would you be available to help if we did that? Any other volunteers?
thumbnail
Jonathon Omahen, modificado hace 13 años.

RE: Translations work system

Junior Member Mensajes: 31 Fecha de incorporación: 28/09/09 Mensajes recientes
I'm with Jorge on this, I think.

I've looked at Pootle, too, and while it seems like a good enough immediate solution, we haven't really tested it for security and stability. Not to mention, it's sort of a generic solution, not particularly tailored for Liferay. Liferay deals with translation text in a non-standard way, and thus requires a slightly different approach, IMHO.

As for as developing a custom portlet/portlet suite for replicating Pootle's functionality, I think it would be a good idea, but it may take some time. I, for one, would love to donate some time towards that effort, and could probably dig up some post-work hours during the week, or on the weekend towards that effort.

All in all, I'm glad we're finally considering a system to help handle/manage translations and their updates. emoticon
thumbnail
Milan Jaroš, modificado hace 13 años.

RE: Translations work system

Expert Mensajes: 268 Fecha de incorporación: 18/08/08 Mensajes recientes
Liferay deals with translation text in a non-standard way, and thus requires a slightly different approach.

I'm not sure what exactly do you mean?
thumbnail
Hitoshi Ozawa, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 7942 Fecha de incorporación: 24/03/10 Mensajes recientes
Milan Jaroš:
Liferay deals with translation text in a non-standard way, and thus requires a slightly different approach.

I'm not sure what exactly do you mean?


I think Jonathon means Mozilla and OpenOffice did not use automatic translation and used more in a waterfall development model. It's more of first create a stable version, gather people to translate, translate within a set period of time, bundle and release.

Liferay still is suffering some many strings which are not externalized, with properties files which are not placed in a folder in consistent way, properties files with different encoding. Unless these problems are resolved beforehand, messages will be jumping from one file to another and it will be a pain in the neck trying to find corresponding page with the keyword.

I'm attaching a file and a screen shot of social portlet which doesn't handle UTF-8 portlet.xml file too well.(File name of the screen shot represents encoding of portlet.xml)
thumbnail
Jonathon Omahen, modificado hace 13 años.

RE: Translations work system

Junior Member Mensajes: 31 Fecha de incorporación: 28/09/09 Mensajes recientes
I'm definitely going to take a closer look at the portlet.xml issue, because that is important for translation purposes.

I'll post the results of my endeavours later emoticon
thumbnail
Julio Camarero, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 1668 Fecha de incorporación: 15/07/08 Mensajes recientes
Hi guys, we finally have Pootle installed in our servers (thanks to Brian Chan!)

We are going to test how it goes. We are thinking of using a plugin as a starting point to evaluate how it works. If it works fine, we will use the tool for the portal later. We will let you all know how to participate in this test as we have it ready.

Thanks everyone (and specially Milan) for your help!
thumbnail
Milan Jaroš, modificado hace 13 años.

RE: Translations work system

Expert Mensajes: 268 Fecha de incorporación: 18/08/08 Mensajes recientes
Great news! ;o)
thumbnail
Hitoshi Ozawa, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 7942 Fecha de incorporación: 24/03/10 Mensajes recientes
It seems Liferay is sometimes unable to handle files which are actually in UTF-8 encoding.

Just putting setting encoding=UTF-8 does not make the file encoding UTF-8.
thumbnail
Julio Camarero, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 1668 Fecha de incorporación: 15/07/08 Mensajes recientes
Hi Hitoshi,

it seems that the editor you are using is not working fine with UTF-8 because I can't see normally the files that you attached, which editor are you using? have you set your editor to use UTF-8?
thumbnail
Hitoshi Ozawa, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 7942 Fecha de incorporación: 24/03/10 Mensajes recientes
Sorry, attached the file in the wrong folder. Attached in the correct one which I created using standard MS Windows Notepad bundled with Japanese version of MS Windows XP.

Archivos adjuntos:

thumbnail
Borxa Varela Bouzas, modificado hace 13 años.

RE: Translations work system

Junior Member Mensajes: 69 Fecha de incorporación: 26/12/06 Mensajes recientes
Why the file begin with
<!--?xml version="1.0" encoding="Shift_JIS"?-->
?

I think if the file was created with UTF-8, special characters are represented by 2 bytes, but if the file encoding is set to "Shift_JIS" ... the editor will read the 2 bytes in UTF-8 and it not know what to do in "Shift_JIS".

When you save it, characters stay permanently corrupt, and I see this <title>�T�v</title>, with any solution. (you can see how i copy and paste and characters remain corrupt)
thumbnail
Hitoshi Ozawa, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 7942 Fecha de incorporación: 24/03/10 Mensajes recientes
Borxa Varela Bouzas:
Why the file begin with
<!--?xml version="1.0" encoding="Shift_JIS"?-->
?

I think if the file was created with UTF-8, special characters are represented by 2 bytes, but if the file encoding is set to "Shift_JIS" ... the editor will read the 2 bytes in UTF-8 and it not know what to do in "Shift_JIS".

When you save it, characters stay permanently corrupt, and I see this <title>�T�v</title>, with any solution. (you can see how i copy and paste and characters remain corrupt)


As I have shown in a screen shot in my earlier post on this thread, Liferay's xml parser will not correctly parse when encoding="UTF-8". It seems Liferay's xml parser is only able to parse 1 byte character when encoding="UTF-8". 2 byte characters are all dropped - thus they do not appear on the page.

Characters are not permanently corrupt with Shift-JIS encoding. You're environment probably just do not have the Japanese fonts to display Japanese characters.

In all, I am able to correctly display menu items in Japanese only when file encoding is in Shift-JIS.
thumbnail
Hitoshi Ozawa, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 7942 Fecha de incorporación: 24/03/10 Mensajes recientes
Attached is the properly displayed social networking portlet menu in Japanese. It seems portlet.xml requires <resource-bundle>content.Language</resource-bundle> even when resource bundle is not used.

Archivos adjuntos:

thumbnail
Borxa Varela Bouzas, modificado hace 13 años.

RE: Translations work system

Junior Member Mensajes: 69 Fecha de incorporación: 26/12/06 Mensajes recientes
If you are using Netbeans editor (like me), your problem could be this:

http://forums.netbeans.org/ptopic5782.html
http://netbeans.org/bugzilla/show_bug.cgi?id=75906

Attached is a screenshot with the problem that I could not solve.

Archivos adjuntos:

thumbnail
Corné Aussems, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 1313 Fecha de incorporación: 3/10/06 Mensajes recientes
Hi Julio,

It has been quiet for sometime now.
Any updates on the Pootle test?
thumbnail
Julio Camarero, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 1668 Fecha de incorporación: 15/07/08 Mensajes recientes
Hi Corné!

Milan is being really pushing for this, and he has even created some scripts for using pootle in Liferay.

I should be reviewing all this with Brian Chan this week so we may have a prototype very soon........
thumbnail
Corné Aussems, modificado hace 13 años.

RE: Translations work system

Liferay Legend Mensajes: 1313 Fecha de incorporación: 3/10/06 Mensajes recientes
Great news guys and many thanks to Milan.

BTW currently we (me and my wife, a Dutch Literature Msc and editor/lecturer) are reviewing the complete translations.
She really doing a great job in simplifying the techy stuff and makes it all readable for 'normal' people.

I hope we finish before the next EE release.

When finished i'm happy to participate in the Pootle project.
thumbnail
Milan Jaroš, modificado hace 13 años.

RE: Translations work system

Expert Mensajes: 268 Fecha de incorporación: 18/08/08 Mensajes recientes
Hi,
thank you for your involvement. I have posted info about RPMs ahead, maybe this can be helpful for Julio.

There is also that hosting option. But it is not officially supported. As Dwayne told me, they don't have any procedure for that. He is developer who react for my annoying spamming on their IRC channel and mailing-list. ;) I told him some basic info about Liferay and he agreed that they can host our project.

I really don't know Pootle well. I heard about it in this thread first time. I was just interested and involved. There are many thousands of hours of development behind Pootle, I don't think it will be easy to develop something like this from the scratch. AFAIK they have developed many helpful mechanisms to support translators. IMHO we can integrate some parts like dashboard or something easy but not all functionalities.

I personally vote for the Pootle installation (like we are using Jira, Subversion, FishEye...)

According to security:
If we will have own Pootle installed security will depends on Django (Python framework). I really don't know nothing about Python. I just trust.
If we will use hosted solution there is possible abuse of SVN account (with write access to translation folder). But this is not dangerous how it could look like because everything is versioned an you can do roll-back if you wish.
It is similar principle like wiki's or launchpad (I was translating Ubuntu in past ;)) or forums. Everyone can harm by filling in bad words. You just need moderators...