jbovlaste import samru'e demonstration lang en: Difference between revisions

From Lojban
Jump to navigation Jump to search
mNo edit summary
 
m (Gleki moved page jbocre: jbovlaste import samru'e demonstration lang en to jbovlaste import samru'e demonstration lang en without leaving a redirect: Text replace - "jbocre: ([a-z])" to "$1")
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:


==  How To Assist With Translating The MOO ==
~np~{word}~/np~ {jvsv samru'e}


~np~{word|alt}~/np~ NOT HANDLED: ~np~{samru'e|running}~/np~


# Get admin privs.  Come on #lojban and ask rlpowell.
~np~{valsi:d}~/np~


## Please note that if you do anything with the admin user (such as move around the MOO) it affects ''everyone'' who uses that user.  So try to avoid that sort of thing.  If you must do something jarring to test something, please put the admin back the way you found it when you're done.
NOT HANDLED: ~np~{samru'e:d}~/np~


# Find a message you want to translate.
~np~{valsi:g}~/np~


# Run "showall [[jbocre: object|object]]" ("tcelanli [[jbocre: object|object]]" in Lojban) on the object with the message.  Look for the message in the output.  If it's not in a .msg field, you'd probably best stop right there and send mail to [[jbocre: Robin Powell|Robin Powell]] with what you were trying to do.
{jvsv samru'e general=1}


# Having found the .msg field in question in the "showall" output, look for a "*" in the line with the .msg field name in it.  If there is one (and there almost certainly will be), that field is inherited.  If not, something wierd is going on, and you'd probably best stop right there and send mail to [[jbocre: Robin Powell|Robin Powell]] with what you were trying to do.
~np~{valsi:w}~/np~


# So, now we need to figure out which object originally defined that field.  There are a couple of ways to do this; the fastest one is '!find /usr/lib/mooix -type f | xargs grep "[[jbocre: the message|the message]]"'.  You can also do the following:
NOT HANDLED: ~np~{samru'e:w}~/np~


## Find the parent line in "showall".
p


## Replace "/var" with "/usr".  showall that.
NOT HANDLED: ~np~{samru'e:p}~/np~


## Repeat until there is no "*" in the showall line for the field you're wanting to translate.
1


# So you now have the /usr/lib/mooix path of an object.  '''YOU MUST''' change /usr to /var; any edits in /usr will be destroyed.  So you want to do something like: "edit mooix:/var/lib/mooix/concrete/thing put_under.msg".  Again, if you edit '''anything''' under mooix:/usr, your changes will be lost.
NOT HANDLED: ~np~{samru'e:1}~/np~


===  How To Do The Actual Translating ===
2


Just run the following:
NOT HANDLED: ~np~{samru'e:2}~/np~


edit [[jbocre: object|object]] [[jbocre: field|field]] in [[jbocre: language|language]]
3


So, for example:
NOT HANDLED: ~np~{samru'e:3}~/np~


edit the nice wooden desk's name in Lojban
4


The Lojban equivalent is:
NOT HANDLED: ~np~{samru'e:4}~/np~


galfi "name" po "nice wooden desk" bau la lojban
5


==  Translation Conventions ==
NOT HANDLED: ~np~{samru'e:5}~/np~


When translating a name, leave the article out, as Robin indicated above. When translating messages, always remember to include .i at the start of the sentence, and if your x1 uses a variable, use cu just to be safe. (ie ".i $this cu broda" instead of ".i $this broda", since $this might be replaced with "le dakfu" or something, and without a cu, you have no selbri in this case.)
6


- Ted
NOT HANDLED: ~np~{samru'e:6}~/np~


==  Code Changes ==
nlw no lang


(Copied from IRC)
{jvsn computer process general=1}


~pp~
amanto


<rlpowell> Yeah, code changes don't belong in /var.
{jvsn amanto lang="eo" general=1}


<rlpowell> So the way it works is that the live moo runs out of /var/lib/mooix, and the distributed code is all in /usr/lib/mooix
~np~[[page|page]]~/np~


<rlpowell> Every object in /var has a parent in /usr, and every parent in /usr has a parent in /var.
[[jbovlaste import: FrontPage lang en]]


<rlpowell> Erm, every *system* object, rather.
~np~[[age ink|age ink]]~/np~


<rlpowell> So your avatar's parent is in /var, and its parent is in /usr, and its parent is in /var, and so on until you get to /usr/lib/mooix/concrete/thing, where it stops.
[[jbovlaste import: FrontPage ain English Page lang en]]


<rlpowell> The *reason* is that it allows one to update the the code in /usr as much as you want *without* fucknig with local changes but still having the changes take effect.
~np~[[age lang|age lang]]~/np~


<Eimi> So changes in /usr/ take effect, unless we've already overridden it in /var/
NOT HANDLED: ~np~[[rontPage eo|rontPage eo]]~/np~


<Eimi> we do our local translations in /var, /usr gets the code changes and new messages that will eventually get folded back into the distribution
~np~[[age lt|lang]]~/np~


<rlpowell> Right.
NOT HANDLED: ~np~[[rontPage ain Esperanto Page|eo]]~/np~


<rlpowell> /usr is *completely* destroyed every time I compile.
~np~[[age lt||lang]]~/np~


<rlpowell> So never ever ever change things in /usr.
NOT HANDLED: ~np~[[rontPage ain Esperanto Page||eo]]~/np~
 
<rlpowell> Test your code changes in /var and then e-mail me with what you changed so I can roll it into the tree.
 
~/pp~
 
==  Translating Verbs (i.e. command names) ==
 
You'll need to be an admin for this.
 
# Find something you'd like to be able to do.  Find the original .cmd file for it.
 
# Copy the entire text of the .cmd file.
 
# Edit a file named <brivla>.cmd.jbo on the same object as the original .cmd file (except in the /var tree, which should happen by default anyways).  It technically doesn't '''have''' to be named .jbo, but it simplifies things.
 
# Replace "verb" with "brivla".
 
# Make aliases for the various parts of speech, such as "direct_object=object2", which says that the object in the 2nd sumti place will be called the direct object when the verb is run.  Doing this aliasing means most verbs don't actually need to be touched at all.
 
# Unless you have made, or are planning on making, a special Lojban-only verb, make sure that the line ends with the verb to use, such as ": say".
 
===  Example ===
 
The example is mooix:concrete/thing put.cmd
 
~pp~
 
# "put down object / put object down"
 
verb, do_preposition(down), direct_object(this)(touchable)(tomove) : put_in
 
# "put object in object"
 
verb, direct_object(touchable)(tomove), io_preposition(set@in_prepositions), indirect_object(this)(touchable)(open) : put_in
 
# "put object on object"
 
verb, direct_object(touchable)(tomove), io_preposition(set@on_prepositions), indirect_object(this)(touchable) : put_on
 
# "put object under object"
 
verb, direct_object(touchable)(tomove), io_preposition(set@under_prepositions), indirect_object(this)(touchable) : put_under
 
# "put object behind object"
 
verb, direct_object(touchable)(tomove), io_preposition(set@behind_prepositions), indirect_object(this)(touchable) : put_under
 
~/pp~
 
The first one can simply be dropped.
 
The rest become:
 
~pp~
 
## "prepositional" forms
 
# "punji le bolci le nenri be le jubme"
 
brivla, direct_object=object2(touchable)(tomove), io_preposition=preposition3(set@in_prepositions), indirect_object=object3(this)(touchable)(open) : put_in
 
# "punji le bolci le cpana be le jubme"
 
brivla, direct_object=object2(touchable)(tomove), io_preposition=preposition3(set@on_prepositions), indirect_object=object3(this)(touchable) : put_on
 
# "punji le bolci le cnita be le jubme"
 
brivla, direct_object=object2(touchable)(tomove), io_preposition=preposition3(set@under_prepositions), indirect_object=object3(this)(touchable) : put_under
 
# "punji le bolci le trixe be le jubme"
 
brivla, direct_object=object2(touchable)(tomove), io_preposition=preposition3(set@behind_prepositions), indirect_object=object3(this)(touchable) : put_behind
 
~/pp~
 
In addition, Lojban has the non-prepositional use of "punji", like so:
 
~pp~
 
## Regular bridi forms
 
# "punji le bolci le jubmi"
 
brivla, direct_object=object2(touchable)(tomove), indirect_object=object3(this)(touchable) : put_on
 
~/pp~
 
===  Lojban .cmd Elements ===
 
See mulsidju fi "lojban-commands".  Some basic information:
 
;objectN:Phrases that the moo has matched with an available object, such as "le bolci" or "le bolci poi nenri le tanxe".  N is the sumti position of the object, so the first object after the brivla will be object2.
 
;prepositionN:This is a bit of a hack; these are "prepositional" phrases, by which I mean things like "le cnita be".  They are associated with and have the same N as the object they modify.
 
;lojban_quoteN:Lojban quotes (i.e. quotes using lu...li'u; no actual Lojban correctness is enforced in the quotes).  Numbered along with objects.
 
;non_lojban_quoteN:Non-Lojban quotes, which currently only use "..." but should some day use zoi properly.  Numbered along with objects.
 
Special case: things attached to an object with po/pe/etc are numbered the same as the object, so {galfi "name" po le lojbo cipra pilno} ends up with an object1 and a non_lojban_quote1.
 
==  Theoretical Capabilities ==
 
It seems to me that there should be a place to record what a Lojban parser '''should''' be able to do, particularily as compared to what the English parser can already do.
 
So, please record such observations at the [[jbocre: Lojban MOO Multilingual Parser Theoretical Capabilities|Lojban MOO Multilingual Parser Theoretical Capabilities]] page.

Latest revision as of 15:46, 23 March 2014

~np~{word}~/np~ {jvsv samru'e}

~np~{word|alt}~/np~ NOT HANDLED: ~np~{samru'e|running}~/np~

~np~{valsi:d}~/np~

NOT HANDLED: ~np~{samru'e:d}~/np~

~np~{valsi:g}~/np~

{jvsv samru'e general=1}

~np~{valsi:w}~/np~

NOT HANDLED: ~np~{samru'e:w}~/np~

p

NOT HANDLED: ~np~{samru'e:p}~/np~

1

NOT HANDLED: ~np~{samru'e:1}~/np~

2

NOT HANDLED: ~np~{samru'e:2}~/np~

3

NOT HANDLED: ~np~{samru'e:3}~/np~

4

NOT HANDLED: ~np~{samru'e:4}~/np~

5

NOT HANDLED: ~np~{samru'e:5}~/np~

6

NOT HANDLED: ~np~{samru'e:6}~/np~

nlw no lang

{jvsn computer process general=1}

amanto

{jvsn amanto lang="eo" general=1}

~np~page~/np~

jbovlaste import: FrontPage lang en

~np~age ink~/np~

jbovlaste import: FrontPage ain English Page lang en

~np~age lang~/np~

NOT HANDLED: ~np~rontPage eo~/np~

~np~lang~/np~

NOT HANDLED: ~np~eo~/np~

~np~|lang~/np~

NOT HANDLED: ~np~|eo~/np~