Hi, work is crazy, so believe it or not, with all else going on as you 
know, I haven't had time to look at this until now.. Checking the Perl 
script, i have one question - (since my perl knowledge is very limited). 
Isn't the script expecting every row to begin with "login_infolabel" as it 
is written right now? The variable names in the files are different on 
every row. Or am i missing something obvious? Cheers

On Thursday, October 29, 2020 at 1:48:43 PM UTC+1 Mathias wrote:

> Guys, thanks a bunch for great feedback! I will take your stuff and make 
> it work i'm sure. If not i'll bother you here again! :) The reason for me 
> taking AppleScript is that i was doing stuff before i had BBEdit and i 
> kinda knew it, that's all.
>
> On Thursday, October 15, 2020 at 3:26:55 PM UTC+2 John R M. Delacour wrote:
>
>>
>>
>> On 13 Oct 2020, at 06:54, Mathias af Jochnick <[email protected]> 
>> wrote:
>>
>> i'm trying to make 2 scripts to convert between IOS and Android i18n 
>> formats to work. I've gotten Android -> IOS to work, but the other way 
>> around is a challenge.
>>
>> Basically, for each row in a file i want to convert
>> *"login_infoLabel" = "Do you need help? Press here.”;*
>> to
>> *<string name="login_infoLabel">Do you need help? Press here.</string*
>>
>> See my script below. The problem is the first search string to find the 
>> first " on each row. I spoke with Patrik at BBEdit and he kindly informed 
>> me that it was because AppleScript doesn't support grep
>>
>>
>> Patrick could not be more right!  AppleScript is not the tool for text; 
>> but BBEdit provides the Text Factory feature that allows you to use Perl 
>> (or Python, or sed) to do the work easily.
>>
>> Here is your script written in Perl:
>>
>> #! /usr/bin/perl
>> while (<>) {
>> # changes quotes round string name to §, preserving them
>> s~"(login_infoLabel)" ?= ?([^;]+);~<string name=§$1§>$2</string>~g;
>> # delete the quotes not preserved
>> s~"~~g;
>> # restore the quotes round string name
>> s~§~"~g;
>> # remove the final semicolon
>> s~;$~~;
>> # Execute the substitutions
>> print;
>> }
>>
>> This script will operate on the front window.
>>
>> How to do it—
>> 1. Open a new Text Factory (Menu: File::New...), paste in the above 
>> script, and save it as test.pl in
>> ~/Library/Application Support/BBEdit/Text Filters/
>> 2. Open the (Menu: Window::Palettes::)Text Filters palette
>> 3. Set a shortcut of you like
>> 4. Run the script (filter) with your target window frontmost.
>>
>> Notes—
>> I use "~" in the regex rather than "/".  You can use whatever you like.
>> s~found~replacement~g ;  #~g means replace all
>> Perl Regular Expressions differ from BBEdit's PRE in using $1, $2 etc 
>> rather than \1, \2
>> All the Perl knowledge you need to make the filter is:
>> a valid shebang line (should not be necessary and was not in better 
>> days!);
>> the while loop: while (<>) { ...... } ;
>> a knowledge of regex in Perl, which is almost the same as BBEdit's 
>> implementation but more powerful.
>>
>> JD
>>
>>
>>
>>
>>
>>

-- 
This is the BBEdit Talk public discussion group. If you have a feature request 
or need technical support, please email "[email protected]" rather than 
posting here. Follow @bbedit on Twitter: <https://twitter.com/bbedit>
--- 
You received this message because you are subscribed to the Google Groups 
"BBEdit Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/bbedit/ed7e6994-3520-4279-915c-9aaa888e68b1n%40googlegroups.com.

Reply via email to