Vo Minh Thu (OpenERP) has proposed merging
lp:~openerp-dev/openobject-server/trunk-lolcat into lp:openobject-server.
Requested reviews:
OpenERP Core Team (openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-lolcat/+merge/113264
--
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-lolcat/+merge/113264
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-server/trunk-lolcat.
=== added directory 'openerp/tests/addons/test_lolcat'
=== added file 'openerp/tests/addons/test_lolcat/__init__.py'
--- openerp/tests/addons/test_lolcat/__init__.py 1970-01-01 00:00:00 +0000
+++ openerp/tests/addons/test_lolcat/__init__.py 2012-07-03 17:28:01 +0000
@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+import models
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added file 'openerp/tests/addons/test_lolcat/__openerp__.py'
--- openerp/tests/addons/test_lolcat/__openerp__.py 1970-01-01 00:00:00 +0000
+++ openerp/tests/addons/test_lolcat/__openerp__.py 2012-07-03 17:28:01 +0000
@@ -0,0 +1,15 @@
+# -*- coding: utf-8 -*-
+{
+ 'name': 'test-lolcat',
+ 'version': '0.1',
+ 'category': 'Tests',
+ 'description': """A MODYUL 2 GENERATE TEH LOLCAT TRANZLASHUN.""",
+ 'author': 'OpenERP SA',
+ 'maintainer': 'OpenERP SA',
+ 'website': 'http://www.openerp.com',
+ 'depends': ['base'],
+ 'data': ['view.xml'],
+ 'installable': True,
+ 'auto_install': False,
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added file 'openerp/tests/addons/test_lolcat/models.py'
--- openerp/tests/addons/test_lolcat/models.py 1970-01-01 00:00:00 +0000
+++ openerp/tests/addons/test_lolcat/models.py 2012-07-03 17:28:01 +0000
@@ -0,0 +1,97 @@
+# -*- coding: utf-8 -*-
+import cStringIO
+import random
+import re
+
+import openerp
+
+# Translation code ported from Acme-LOLCAT. Not sure all regex work.
+
+REPL = {
+ 'what' : ['wut', 'whut'], 'you\b' : ['yu', 'yous', 'yoo', 'u'],
+ 'cture' : 'kshur', 'unless' : 'unles',
+ 'the\b' : 'teh', 'more' : 'moar',
+ 'my' : ['muh', 'mah'], 'are' : ['r', 'is', 'ar'],
+ 'eese' : 'eez', 'ph' : 'f',
+ 'as\b' : 'az', 'seriously' : 'srsly',
+ 'er\b' : 'r', 'sion' : 'shun',
+ 'just' : 'jus', 'ose\b' : 'oze',
+ 'eady' : 'eddy', 'ome?\b' : 'um',
+ 'of\b' : ['of', 'ov', 'of'],'uestion' : 'wesjun',
+ 'want' : 'wants', 'ead\b' : 'edd',
+ 'ucke' : ['ukki', 'ukke'], 'sion' : 'shun',
+ 'eak' : 'ekk', 'age' : 'uj',
+ 'like' : ['likes', 'liek'], 'love' : ['loves', 'lub', 'lubs', 'luv'],
+ '\bis\b' : ['ar teh','ar'], 'nd\b' : 'n',
+ 'who' : 'hoo', "q(')" : 'q()',
+ 'ese\b' : 'eez', 'outh' : 'owf',
+ 'scio' : 'shu', 'esque' : 'esk',
+ 'ture' : 'chur', '\btoo?\b' : ['to', 't', '2', 'to', 't'],
+ 'tious' : 'shus', 'sure\b' : 'shur',
+ 'tty\b' : 'tteh', 'were' : 'was',
+ 'ok\b' : [ "'k", 'kay'], '\ba\b' : 'q()',
+ 'ym' : 'im', 'thy\b' : 'fee',
+ '\wly\w' : 'li', 'que\w' : 'kwe',
+ 'oth' : 'udd', 'ease' : 'eez',
+ 'ing\b' : ['in', 'ins', 'ng', 'ing'],
+ 'have' : ['has', 'hav', 'haz a'],
+ 'your' : [ 'yur', 'ur', 'yore', 'yoar'],
+ 'ove\b' : [ 'oov', 'ove', 'uuv', 'uv', 'oove'],
+ 'for' : [ 'for', '4', 'fr', 'fur', 'for', 'foar'],
+ 'thank' : [ 'fank', 'tank', 'thx', 'thnx'],
+ 'good' : [ 'gud', 'goed', 'guud', 'gude', 'gewd'],
+ 'really' : [ 'rly', 'rily', 'rilly', 'rilley'],
+ 'world' : [ 'wurrld', 'whirld', 'wurld', 'wrld'],
+ "q(i'?m\b)" : 'im',
+ '(?!e)ight' : 'ite',
+ '(?!ues)tion' : 'shun',
+ "q(you'?re)" : ['yore', 'yr'],
+ '\boh\b(?!.*hai)': ['o', 'ohs'],
+ 'can\si\s(?:ple(?:a|e)(?:s|z)e?)?\s?have\sa' : 'i can has',
+ '(?:hello|\bhi\b|\bhey\b|howdy|\byo\b),?' : 'oh hai,',
+ '(?:god|allah|buddah?|diety)' : 'ceiling cat',
+}
+
+def translate(s):
+ for k, v in REPL.iteritems():
+ if isinstance(v, list):
+ s = re.sub(k, v[0], s, flags=re.IGNORECASE)
+ else:
+ s = re.sub(k, v, s, flags=re.IGNORECASE)
+
+ s = ' '.join(s.split())
+ s = s.replace('teh teh', 'teh') # meh, it happens sometimes.
+ if random.randint(1, 10) == 2: s += '. kthxbye!'
+ if random.randint(1, 10) == 1: s+= '. kthx.'
+ s = s.replace('?.', '.')
+ s = s.replace('!.', '.')
+ s = s.replace(',.', '.')
+ s = s.replace('..', '.')
+ return s
+
+class m(openerp.osv.osv.Model):
+ """ This model exposes a great generate_lolcat method.
+ """
+ _name = 'test.lolcat.model'
+
+ def generate_lolcat(self, cr, uid, ids, context=None):
+ print "LOL" # This print statement is against the OpenERP guideline.
+ res_lang = self.pool.get('res.lang')
+ ir_translation = self.pool.get('ir.translation')
+
+ # Everybody can haz the LOLZ.
+ # res_lang.load_lang(cr, openerp.SUPERUSER_ID, 'lol_CAT')
+ buf = cStringIO.StringIO()
+ openerp.tools.trans_export('lol_CAT', ['all'], buf, 'csv', cr)
+ openerp.tools.trans_load_data(cr, buf, 'csv', 'lol_CAT')
+ buf.close()
+
+ translation_ids = ir_translation.search(cr, openerp.SUPERUSER_ID,
+ [('lang', '=', 'lol_CAT')])
+ for t in ir_translation.browse(cr, openerp.SUPERUSER_ID, translation_ids):
+ ir_translation.write(cr, openerp.SUPERUSER_ID, t.id,
+ {'value': translate(t.src)})
+
+ print "ROFL" # This print statement is also against OpenERP.
+ return {}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added file 'openerp/tests/addons/test_lolcat/view.xml'
--- openerp/tests/addons/test_lolcat/view.xml 1970-01-01 00:00:00 +0000
+++ openerp/tests/addons/test_lolcat/view.xml 2012-07-03 17:28:01 +0000
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+
+ <record id="view_test_lolcat_model" model="ir.ui.view">
+ <field name="name">Lolcat translation</field>
+ <field name="model">test.lolcat.model</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Lolcat translation">
+ <label string=""/>
+ <group colspan="8" col="8">
+ <label string="Can I have a Lolcat translation ?"/>
+ <button name="generate_lolcat" string="YEZ" type="object" icon="gtk-ok" colspan="1"/>
+ </group>
+ </form>
+ </field>
+ </record>
+
+ <record id="action_test_lolcat" model="ir.actions.act_window">
+ <field name="name">Lolcat translation</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">test.lolcat.model</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">form</field>
+ <field name="target">new</field>
+ </record>
+
+ <menuitem icon="STOCK_PREFERENCES" id="base.menu_tests" name="Tests"/>
+
+ <menuitem id="menu_test_lolcat" parent="base.menu_tests" name="Lolcat translation"/>
+
+ <menuitem id="menu_test_lolcat_leaf"
+ name="Test lolcat"
+ action="action_test_lolcat"
+ parent="menu_test_lolcat"/>
+ </data>
+</openerp>
=== modified file 'openerp/tools/misc.py'
--- openerp/tools/misc.py 2012-04-23 10:23:13 +0000
+++ openerp/tools/misc.py 2012-07-03 17:28:01 +0000
@@ -633,6 +633,7 @@
'zh_TW': u'Chinese (TW) / 正體字',
'th_TH': u'Thai / ภาษาไทย',
'tlh_TLH': u'Klingon',
+ 'lol_CAT': u'LOLCAT',
}
return languages
=== modified file 'openerp/tools/translate.py'
--- openerp/tools/translate.py 2012-06-28 14:16:32 +0000
+++ openerp/tools/translate.py 2012-07-03 17:28:01 +0000
@@ -132,6 +132,7 @@
'uk_UA': 'Ukrainian_Ukraine',
'vi_VN': 'Vietnamese_Viet Nam',
'tlh_TLH': 'Klingon',
+ 'lol_CAT': 'LOLCAT',
}
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp