# There is a group of contractions that are represented by one letter # only. If they come as single words, they should be abbriviated # normally. But if they come as a part of bigger word, dots 36 must be # placed before the character that represents the abbreviated word. # This is the most problematic rule for me so far. I should define # every contraction twice, one with the "word" opcode, and another # with the "partword" upcode. # When I used the "word" upcode, a big problem happens with # back-translation: if the contraction is part of a word, NVDA # automatically assumes that the character before the dots 36 is a # contraction as well and automatically expand it. An example if the # "word" upcode is used: table: | include tables/unicode.dis include tables/ar-ar-g1.utb word ربما 1235 partword ربما 36-1235 word ليس 123 partword ليس 36-123 word ولما 2456 partword ولما 36-2456 tests: # As separate words it works just fine: - - ربما ليس هو - ⠗ ⠇ ⠓⠺ # As part of a word, it fails: - - وليس - ⠺⠤⠇ - xfail: true # What happens is that it assumes both characters as contractions, # but it should only consider the one after dots 36: - - وليس - ⠤⠺⠤⠇ # The first character in the word is not an abbreviation, yet NVDA # assumes that it is a seperate word as soon as I put dots 36 after # it, because it thinks it is a dash symbol, not a contraction # indicator. In grade1, the word "وليس" will be "ولماليس" # Another example: - - لربما - ⠇⠤⠗ - xfail: true # Incorrect back-translation: - - لربما - ⠤⠇⠤⠗ # To temporarily work around this issue, I used the "lowword" # upcode. This resulted in good back-translation, but disabled the use # of all these abbreviations if they come connected with punctuation # marks, which is not desirable. table: | include tables/unicode.dis include tables/ar-ar-g1.utb lowword ربما 1235 partword ربما 36-1235 lowword ليس 123 partword ليس 36-123 lowword ولما 2456 partword ولما 36-2456 tests: # As a seperate word it works fine: - - ليس - ⠇ # Due to the use of "lowword", they will not be translated next to punctuations: - - ليس ربما. - ⠇ ⠗⠲ - xfail: true # What happens: - - ليس ربما. - ⠇ ⠗⠃⠍⠁⠲ # It solves the issue of the character that comes before dots 36. - - لربما - ⠇⠤⠗