GUACAMOLE-660: Add Urdu Language Support
Unlike other languages currently supported by Guac, Urdu's direction is from right to left. For that reason, I added an additional direction field in the main json file.
There are a number of commits here which are not from GUACAMOLE-660:

as well as a merge commit:

The only commits here should be those related to your specific change (Urdu translation and RTL support), and there should be no merge commits. You should be able to fix all this with a rebase. I'd back up your current work to another branch just in case.
While you're at it, you may want to squash or amend some of these commits. I'm definitely a fan of maintaining meaningful git history and not squashing things unnecessarily, but the messages, etc. should add some value to the history. A message like "Minor changes" or "2nd draft APP field" does not help much to explain the context of the changes made in that commit. A description of why those minor changes were made (was there something specific that was wrong that needed correction) would be better.
The same thing goes for things like "Finished guacamole-auth-radius". This is actually a pretty decent message in the sense that it's specific, but it lacks the context for someone reading the history to understand what you're doing in that commit. As it stands, it sounds like you just finished an extension called "guacamole-auth-radius", which isn't the case. Something like "Add Urdu translation for guacamole-auth-radius" or "Add Urdu translation for RADIUS extension", etc. would make more sense.
Let me know if you have any questions.
I removed all unrelated commits. I cant seem to point out why they ended up here. I also made appropriate changes to all commit messages. Please let me know if any further changes need to be made.
OK - things look generally good code-wise, but I'm seeing a few issues when testing this new support. Most appear to be unexpected results of RTL text.
-
The icon indicating a field used for searching/filtering is still left-justified despite RTL text direction.


-
The text of the connection status dialog is still left-justified despite RTL text direction.

-
When Urdu is selected, the pagination buttons point weirdly inward.

-
Connection duration is still in English (and backwards due to RTL).

-
Connection lists are still left-justified despite RTL text direction, and the expand button and tree lines for connection hierarchies is misaligned.

-
The menu icons are on the left side of the text despite RTL text direction.

Also, just ran the translation checking script added via #356 against the Urdu translation:
The following strings are either NOT defined for the original language or are
expected to be inherited from the original language and should be removed:
APP.NAME
APP.VERSION
The APP.NAME and APP.VERSION strings should be removed from the translation, as they should always be inherited from the English strings.
It may also be worth looking through the following, which the script reports might be untranslated as they are exact copies of the English strings (though I'm sure several are false positives):
The following strings are identical to the original language and MIGHT be untranslated:
APP.FORMAT_DATE_TIME_PRECISE
APP.TEXT_HISTORY_DURATION
CLIENT.NAME_KEY_ALT
CLIENT.NAME_KEY_CTRL
CLIENT.NAME_KEY_ESC
CLIENT.NAME_KEY_TAB
CLIENT.TEXT_FILE_TRANSFER_PROGRESS
DATA_SOURCE_DEFAULT.NAME
FORM.FIELD_PLACEHOLDER_DATE
FORM.FIELD_PLACEHOLDER_TIME
MANAGE_CONNECTION.INFO_CONNECTION_DURATION_UNKNOWN
MANAGE_USER_GROUP.FIELD_HEADER_USER_GROUP_NAME
PROTOCOL_RDP.FIELD_OPTION_RESIZE_METHOD_DISPLAY_UPDATE
PROTOCOL_RDP.FIELD_OPTION_SECURITY_NLA
PROTOCOL_RDP.FIELD_OPTION_SERVER_LAYOUT_DE_DE_QWERTZ
PROTOCOL_RDP.FIELD_OPTION_SERVER_LAYOUT_EN_GB_QWERTY
PROTOCOL_RDP.FIELD_OPTION_SERVER_LAYOUT_EN_US_QWERTY
PROTOCOL_RDP.FIELD_OPTION_SERVER_LAYOUT_ES_ES_QWERTY
PROTOCOL_RDP.FIELD_OPTION_SERVER_LAYOUT_FAILSAFE
PROTOCOL_RDP.FIELD_OPTION_SERVER_LAYOUT_FR_CH_QWERTZ
PROTOCOL_RDP.FIELD_OPTION_SERVER_LAYOUT_FR_FR_AZERTY
PROTOCOL_RDP.FIELD_OPTION_SERVER_LAYOUT_IT_IT_QWERTY
PROTOCOL_RDP.FIELD_OPTION_SERVER_LAYOUT_JA_JP_QWERTY
PROTOCOL_RDP.FIELD_OPTION_SERVER_LAYOUT_PT_BR_QWERTY
PROTOCOL_RDP.FIELD_OPTION_SERVER_LAYOUT_SV_SE_QWERTY
PROTOCOL_RDP.FIELD_OPTION_SERVER_LAYOUT_TR_TR_QWERTY
PROTOCOL_SSH.FIELD_OPTION_TERMINAL_TYPE_ANSI
PROTOCOL_SSH.FIELD_OPTION_TERMINAL_TYPE_LINUX
PROTOCOL_SSH.FIELD_OPTION_TERMINAL_TYPE_VT100
PROTOCOL_SSH.FIELD_OPTION_TERMINAL_TYPE_VT220
PROTOCOL_SSH.FIELD_OPTION_TERMINAL_TYPE_XTERM
PROTOCOL_SSH.FIELD_OPTION_TERMINAL_TYPE_XTERM_256COLOR
PROTOCOL_TELNET.FIELD_OPTION_TERMINAL_TYPE_ANSI
PROTOCOL_TELNET.FIELD_OPTION_TERMINAL_TYPE_LINUX
PROTOCOL_TELNET.FIELD_OPTION_TERMINAL_TYPE_VT100
PROTOCOL_TELNET.FIELD_OPTION_TERMINAL_TYPE_VT220
PROTOCOL_TELNET.FIELD_OPTION_TERMINAL_TYPE_XTERM
PROTOCOL_TELNET.FIELD_OPTION_TERMINAL_TYPE_XTERM_256COLOR
PROTOCOL_VNC.FIELD_OPTION_CLIPBOARD_ENCODING_CP1252
PROTOCOL_VNC.FIELD_OPTION_CLIPBOARD_ENCODING_ISO8859_1
PROTOCOL_VNC.FIELD_OPTION_CLIPBOARD_ENCODING_UTF_16
PROTOCOL_VNC.FIELD_OPTION_CLIPBOARD_ENCODING_UTF_8
SETTINGS_CONNECTION_HISTORY.FILENAME_HISTORY_CSV
SETTINGS_CONNECTION_HISTORY.INFO_CONNECTION_DURATION_UNKNOWN