Re: 'lang' file editor ...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Matt Carlson wrote:
> I am running into the same problem.
> 
> A very VERY basic thing that I worked on for importing yielded this:
> 
> preg_match_all('/.*?(?:\$lang([^=]*)=(.*?); *$.*?)+/ms', file_get_contents("localization/enUS.php"), $parsed);
> 
> It wasn't the best, but it worked 90% of the time.  Maybe this can help you on the parsing front.

to be honest that regexp is rather too crude for all the variations I want/need to deal with,
it quite alot like the first attempt I made a few years ago ... although I notice you don't consider
the matching the string quotations (and/or use backreferences in the regexp to make sure the quotes match)

I've actually started work on an editor that is based around token_get_all() - and I'm finding it rather
easy going - alot easier than the regexp hell I got stuck itn last time round ... when I'm done
I post what I have (although It'll be in a form that will require whoever want to do something
with it to hack it up a bit so it works within the confines of their CMS [and/or standalone])

> 
> ----- Original Message ----
> From: Jochem Maas <jochem@xxxxxxxxxxxxx>
> To: Jim Lucas <lists@xxxxxxxxx>
> Cc: ceo@xxxxxxxxx; [php] PHP General List <php-general@xxxxxxxxxxxxx>
> Sent: Thursday, April 12, 2007 5:11:39 AM
> Subject: Re:  'lang' file editor ...
> 
> what I'm looking for is something that will make it possible for an end user
> to merge [the contents] existing language files (that contain the items for the same language)
> *and* perform translations between languages in a visual/easy way (i.e. without opening
> a text editor) but end up with lang files that still formatted and commented when I'm done.
> 
> it's a three step process:
> 
> 1. 'parse' 2 files: a 'reference' and a 'translation' file
> 2. display an editing interface for the 2 files (textareas, filtering [e.g. show only
> untranslated items], sorting, etc)
> 3. write out a merged/updated file.
> 
> probably the merging of 2 existing lang files of the same language will require
> a seperate interface than the translation/comparison of 2 files containing different
> languages.
> 
> I have made a half-assed attempt to do this some years ago and it worked ok
> but wasn't quite the level of sophistication I desired  - If no one has anything like
> this lying around then I guess it's time for me to hack up a new thingummy,
> using var_export()/print_r() [and running the code to merge, etc] won't cut it
> (I've been down that road already) so probably I'm looking
> at using either the tokenizer (although how exactly is something I'd have to look into)
> or a combination of preg_match()/preg_replace() (which is something I am confident
> I can now do to the required level - when I tried before my regexp skills sucked
> too much).
> 
> I'm quite sure I make it work, but I'd be surprised if no-one has gone before me
> - there must be tons of projects out there with the same kind of language file structure ...
> 
> maybe I should consider moving my 'shit' into gettext format.
> 
> Jim Lucas wrote:
>> Richard Lynch wrote:
>>> Seems to me you'd be better off just running the PHP code and dumping
>>> the arrays out with var_dump or print_r "like" function to generate
>>> your new language files...
>>>
>>> Otherwise, you're writing a fairly big chunk of the PHP parser, which
>>> is already in PHP, so you re-invent the wheel...
>>>
>>> On Wed, April 11, 2007 9:07 pm, Jochem Maas wrote:
>>>> anyone know of a decent script (or something I can rip out of an
>>>> existing OS tool)
>>>> that is capable of comparing, editing and saving 'old skool' lang
>>>> files - you know
>>>> the ones which define tons of array elements e.g.:
>>>>
>>>> $Lang['foo'] = 'bar';
>>>>
>>>> I'm looking for something that can handle quotes properly and 'weird'
>>>> array keys
>>>> (that include constants, for instance) as well as sprintf markers in
>>>> the 'translation'
>>>> text (e.g. "my %s hurts") and if at all possible the abiltiy to
>>>> recognise and not f'up
>>>> stuff like:
>>>>
>>>> $Lang['foo'] = 'my '.$Lang['bar'].' really hurts';
>>>>
>>>> and I'd prefer it to be able to keep file formatting, item ordering
>>>> and comments
>>>> as they were when saving back into the file.
>>>>
>>>> I can't find anything really useful - the firefox 'php lang file'
>>>> editor plugin, is,
>>>> for instance, not up to the job.
>>>>
>>>> tar,
>>>> Jochem
>>>>
>>>> -- 
>>>> PHP General Mailing List (http://www.php.net/)
>>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>>
>>>>
>>>
>> From what he said, I read that he want to rip the contents out of the
>> file, not actually parse it.
>>
>> for example, if he parsed this out:
>> $Lang['foo'] = 'my '.$Lang['bar'].' really hurts';
>>
>> You would get the completed string, not a line that has the variable
>> call in it.
>>
>> Maybe I took it wrong, but that is what I thought he wanted.
>>
>> a reader, not a parser.
>>
> 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux