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/74972111-C82C-41EF-9492-C3698E0B5301%40gmail.com.