• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
2

Indesign bug: RTL mark not working

Participant ,
Nov 29, 2023 Nov 29, 2023

Copy link to clipboard

Copied

I have some text in arabic in a manual that gets printed in the wrong direction. If i put a RTL-mark before it, i just get a little directional arrow but the text doesnt change direction. Where do i set RTL/LTR?

TOPICS
Bug , How to

Views

328

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 29, 2023 Nov 29, 2023

Copy link to clipboard

Copied

quote

If i put a RTL-mark before it, i just get a little directional arrow but the text doesnt change direction. 


By @Lordrhavin

 

I didn't understand the above part of what you wrote. However, I do understand that you need to have RTL / LTR controls

 

To get these Paragraph direction controls, you need to have the Middle Eastern version of Adobe InDesign.

image.jpeg

In order to install the Middle Eastern copy of Adobe InDesign, you can remove existing copy, or keep existing copy thus having two copies of InDesign eventually, one for Right-to-Left languages, and original copy of InDesign on your machine for English jobs.

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Nov 29, 2023 Nov 29, 2023

Copy link to clipboard

Copied

https://www.google.com/search?q=RTL+mark

I need another version to have a certain basic text feature that any modern browser supports. Are you kidding me?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 29, 2023 Nov 29, 2023

Copy link to clipboard

Copied

Nope! He's not kidding you, and you don't actually need to install a Middle Eastern edition of InDesign with full controls for bidirectional typesetting that far exceed what you're going to find in any modern browser. But you do need to understand how that robust typesetting engine works, if you expect to salt your text with a few Unicode directional markers and have it respond as if it were text in a browser. (As you've already learned, it won't.) 

 

100% of the tools for handling RTL text are available in your install of InDesign; most of what is added in the ME editions are user interface tools to easily control bidirectional layout. For example, it's possible to turn an LTR paragraph into an RTL paragraph with a line of Javascript, if you don't have the ME edition installed. But if you need to handle any significant amount of bidirectional text formatting, it's much faster to just install the right toolset than it would be to go through your document and add Arabic letter marks (which I'd suggest in your shoes, instead of RTL marks). 

 

Assuming that you're actually trying to use the RTL mark correctly as you would in a browser (on a run of Arabic embedded in the midst of a fully LTR paragraph) then what you'd want to do instead is inform InDesign's typesetting engine that you want to assign the RTL property to a selection of text by using this line of Javascript:

 

 

app.selection[0].characterDirection = CharacterDirectionOptions.rightToLeftDirection

 

 

Assuming you're using Windows, you can navigate to your "Scripts Panel" folder located under \AppData\Roaming\Adobe\Indesign\yourVersion\yourLocale\Scripts and save it there as something like "applyRTL.js" then run it from the Scripts panel on any selected text. 

 

 

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Dec 01, 2023 Dec 01, 2023

Copy link to clipboard

Copied

I tried to set up two scripts. One containes:

app.selection[0].characterDirection = CharacterDirectionOptions.leftToRightDirection

 

the other contains

 

app.selection[0].characterDirection = CharacterDirectionOptions.rightToLeftDirection

both seem to do nothing on selected text ;(

I also tried CharacterDirectionOptions.LEFT_TO_RIGHT_DIRECTION (and the opposite) as stated in the API manual. Doesnt work either.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 01, 2023 Dec 01, 2023

Copy link to clipboard

Copied

That's weird. I wish I knew what was going on for you when it didn't work; I can't guess. Here's how it looks on my side:

 

rev.gif

 

Some items of note: I misnamed the script with a .txt at first; see how it's greyed out in the Scripts panel? Make sure it ends in .js or .jsx. Also, I'm selecting text with the Text tool, not the text frame with the Select tool. I mean, I'm sure that the script could be revised to work on frames, I just didn't think that it would be necessary if the text to be reversed was really a run in the middle of an LTR paragraph.

 

In your shoes, I honestly wouldn't fight with it. It'd take you maybe three minutes to install the ME edition, and just as long to roll it back to US English when you're done. But if you need some other quick workaround for a single Arabic phrase, here's a quick one: you can make some Arabic lorem ipsum.

 

1) Start a fresh text frame.

2) Go to the Type menu, and hold down Control while clicking on "Fill with Placeholder Text."

This will spawn a dialog that will allow you to choose some placeholder text in a variety of scripts.

3) Make some Arabic placeholder text.

4) Copy your current Arabic text that's running LTR to your clipboard.

5) Use Edit -> Paste Without Formatting to paste it into your placeholder text.

6) Now you can copy your properly formatted Arabic phrase back onto your clipboard and do a normal Paste back into your LTR paragraph.

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Dec 05, 2023 Dec 05, 2023

Copy link to clipboard

Copied

"That's weird. I wish I knew what was going on for you when it didn't work;"

Yes. me too. Professional software would offer its features language-independent. Sadly, this is just overpriced Adobe-software.
Now here is the fun-part.: I edited the script so it puts the direction before and afterwards into a msg-box and it indeed changes it. Its just that there is no change to the actual text itself:

 

alert(app.selection[0].characterDirection); // outputs DEFAULT_DIRECTION
app.selection[0].characterDirection = CharacterDirectionOptions.RIGHT_TO_LEFT_DIRECTION;
alert(app.selection[0].characterDirection); // outputs RIGHT_TO_LEFT_DIRECTION

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 29, 2023 Nov 29, 2023

Copy link to clipboard

Copied

With the Middle Eastern version you will get plenty of RTL controls that enable you to put a book together, a magazine or a newspaper, it is not just the one added feature.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Dec 05, 2023 Dec 05, 2023

Copy link to clipboard

Copied

I installed the ME version. My god. I need to insert the arabic term for "Germany" into brackets behind the english word Germany. It doesnt go well. Whatever I try, it wont come out as "Germany (ألمانيا)". See, how a simple C&P this is with webbrowsers?


Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 05, 2023 Dec 05, 2023

Copy link to clipboard

Copied

LATEST

I need to insert the arabic term for "Germany" into brackets behind the english word Germany.

 

It's probably trying to render the space immediately after the "y" as an LTR space, as it falls between a Latin-script character and an open parenthesis, which is a neutral character. If you mark that space as overtly RTL in Character Direction, it should render as you expect. 

 

In case you are unaware, I'm not an Adobe employee. Snarky commentary about whether or not an Adobe tool behaves as you expect falls on deaf ears, here. I've been typesetting bidi text for decades, and I personally would far rather have the kind of fine-grained control offered by a real typesetting tool, instead of salting my text with pop directional overrides and directional markers trying to get a third-level nested parenthesis to render in the correct direction, which is usually what I wind up doing when handling complex bidi text in HTML. But I think there's room for all kinds of people to prefer whatever tools they like to use. 

 

"That's weird. I wish I knew what was going on for you when it didn't work;"

 

That's the absolute nicest way I can think of to say "You're doing it wrong. Post it." 

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines