[espeak-ng:master] reported: Arabic support #github

espeak-ng@groups.io Integration <espeak-ng@...>

[espeak-ng:master] New Comment on Issue #891 Arabic support
By jaacoppi:

Here's how I understand the build system. Hope this helps. My skills with Windows development are limited.

The main cause of the problem is that Linux and Windows separate build systems that are currently not synced with each other.

The build process is:

  1. Build espeak-ng main program In this step, the main program is built.

For linux the build system is called make and the configuration file is Makefile.am For window the build system is Visual Studio (or msbuild for the command line version) and the configuration files are in src/windows/.

Currently everything is working fine for both linux and windows.

  1. Build language data

In this step, espeak-ng is used with command line options --compile --compile-intonations and --compile-phonemes to produce the language files used. For example, arabic is --compile=ar and japanese is --compile=ja. The resulting files are espeak-ng-data/ar_dict and so on.

For linux the process works. For Windows, the build system is missing the commands to produce some of the _dict files. Apparently the missing lines are in src/windows/data.vcxproj but I'm not 100% sure.

For example, the rules for arabic seem to be missing, and ar_dict is not built. Rules for japanese are ok and ja_dict is build.

Someone should go through the Visual studio project files either by hand or with Visual Studio and see that each language mentioned in docs/languages.md is built correctly.

In the long term, this should be done whenever a new language is added to make sure this doesn't happen to other languages. I'm sorry to say that windows support has not been a high priority. It's not because we don't want to, it's because we don't know how.

  1. Create the installer package

For linux, the command make install is used to install the program. Most linux distributions also have a package management system that packages the right files.

For Windows, WiX installer is used to package the files into an .msi file that is used for installing. This step is also missing some languages.

Someone should go through the Wix installer files like src/windows/installer/Product.wxs and see that an installation instruction is created for each language built in step 2.

espeak-ng@groups.io Integration <espeak-ng@...>

[espeak-ng:master] New Comment on Issue #891 Arabic support
By jasondiab:

Thank you for your answer. I just saw the issue posted for the Japanese too. It seemed like copying and pasting the ja_dict and ja files to the right directories made it work. As you pointed out "ar_dict" seems to be missing. I'm not very familiar with Windows development but I will try and take a look at it.