Arabic text defaulting to default font - css

I have converted some open source ttfs from freearabicfonts.com into webfonts using fontsquirrel's webfont converter and gone through the usual css3 steps to get a webfont working (it's definitely there). However, when I try to use the font on arabic text it doesn't work.
background check:
db tables set to utf8, text saved in db as valid arabic, defaultcharset in htaccess set to utf-8, mysql connection: set names as utf-8 done, html5 meta tag set to utf-8, in view source the text is arabic, on the page, the text is arabic..... but the font is the ugly browser standard one...
Anyone ever seen this... I'm pulling my hair out...
Thanks very much indeed.
A

So after a LOT of reading, and bear in mind I am not an Arabic speaker/writer, here are my discoveries and solutions so far:
Currently, there are no solid ways of making Arabic webfonts via online font converters however I would imagine that this will change moving forward.
The options for arabic fonts are the following:
(1) You can use webfonts.fonts.com and their arabic fonts, this list is growing fairly quickly and as of writing this there are 35 font families (195 fonts) link here:
http://webfonts.fonts.com/en-US/Project/Choosefonts#languages%3DW20%26page%3D1
(2) If you have to use your font then you have to convert it yourself and beware, there be dragons down there... The way I font was to use fontforge which is available for unix, for mac you should get this via macports using sudo port install fontforge in the terminal. I think you can get it running in windows using cygwin too. You have to do a lot in the advanced export options to get a perfect result. There's simply too much to explain everything on this post. Instead I strongly recommend you skim read this to get a better grasp of output options from fontforge:
http://fontforge.sourceforge.net/overview.html
http://fontforge.sourceforge.net/gposgsub.html
it's all down to ligatures, glyphs & subsets, however I'm not sure i got mine right as I don't write arabic but mine seems to finally visually match things ok.
(3) As of writing this Google's free arabic webfonts are finished however look over here to track progress:
http://shashafont.com/
I'd really strongly recommend option 1.
Hope that helps someone

The font squirrell converter by default generates a fairly minimal font to keep the size small; any non-Latin characters are removed.
You have to enable some of the advanced options to maintain the arabic glyphs in the font: under "subsetting" choose "custom" or "no subsetting". I haven't actually tried it myself though.

Related

loading 3d text of different language other than English in A-frame

I've been working on my web VR project with A-frame, and I'm having a trouble with 3d text.
I'm trying to load Korean and Japanese text, but only numbers or alphabets were visible, and all the other texts in Korean and Japanese are not appearing.
I first thought it's because the basic fonts are all for English, so I used hiero to create custom font with Korean font and using it. > but still not working.
Can anybody guess what the problem is, and come up with a solution?
You'll need to create an MSDF version of the font you want to use. This GitHub repo has a large collection of fonts, but (currently) only in latin character sets. I would subscribe for updates on aframe-fonts#1 or try to build an MSDF font yourself to use Korean characters in A-Frame. I'm not familiar with creating those fonts, but generate.js or searching around may get some results. Best of luck!

font-family when switching between languages (ie. english - french)

Im implementing a language plugin on a site, you know the sort click and it changes all the content into Arabic, Russian.. ect (im aware that modern browsers have built in features for this, but we've chosen to go this way.)
What i was wandering is how we deal with fonts, if our normal site is running using
font-family: "Century Gothic", CenturyGothic, AppleGothic, sans-serif;
Would it just fall back to the browser defaults if it couldn't render the new text in the above fonts?
Or is there a way of specifying fonts after the translation has taken place?
When characters on a page cannot be found in the font listed first in the applicable font-family list, then browsers are expected to scan the list further and eventually, when needed, fall back to scanning other fonts in the system, in browser-dependent manner. However, browsers (especially IE) are known to fail here and, moreover, the process may result in a mix fonts, even characters from different fonts in a single word.
Thus, you should make a reasonable effort to ensure that any font listed in your font-family list is as such sufficient for the text of the page, at least for letters (special symbols may often be picked up from different fonts without stylistic mess). This is virtually impossible for a widget that translates into “any” language.
I suppose you are referring to the use of a service like Google Website Translator. In addition to producing generally bad translations for business purposes, it may mess up the markup of the page, possibly affecting font issues too. For example, it seems to insert rather pointless font markup which may prevent your font settings from working. Moreover, it does not properly set the lang attribute in the translation result (but leaves the original lang attribute!), so you cannot even expect browsers to use their language-specific defaults for fonts right.
I'm not sure what do you refer to when you say "im aware that modern browsers have built in features for this, but we've chosen to go this way" - browsers don't really provide language selection.
There is, however, a reusable JavaScript library that my team developed, that does this, and it takes care of fonts, too:
https://github.com/wikimedia/jquery.uls
https://github.com/wikimedia/jquery.webfonts
You can use it, or take ideas from it to your implementation.

Is there a standard web-based font that is similar to Malgun (Korean font)?

A client needs to have Malgun as the font whenever hangul characters are present. I'm trying to find something to use in CSS that is close to it. I was thinking Verdana. Anyone else have a suggestion?
Verdana is also looking closer to Malgun, I think you should try google fonts http://www.google.com/webfonts
There are no "standard web-based fonts", only fonts that are more or less probable to be installed on the computer, where the browser is running. You may try to build a font-stack, that comes close to the one you want, e.g. the Verdana based font stack from this Sitepoint article, and then use font-loading methods like Google Webfonts to load your defined font for browsers that support loading fonts.
Do not try to give each visitor the same experience, but the best experience possible. Tell your customer, that a website is not a application that looks the same everywhere, but more like a TV program, that must be viewable from a black and white TV also, see this video.
Have you thought about using Fontsquirrel #font-face generator ? Also, for hangul, you might be interested in reading this.

Readable Font that is Web Safe

In a web app I work with from time to time the issue of text readability has come up. The reason is that it involves passwords which will be read off of the web page or written down. One of my co-workers pointed out the Crystal font as one that is designed to be unambiguous ("l" and "1" aren't confused, "0" and "O", etc), but I'm pretty sure its not useful on the web. I realize that I will probably have to use a fallback strategy, but am looking for advice on what fonts are good for this purpose and specifically those fonts that users may have available. Also, links to resources on the topic would be great as well. Thanks!
Edit: People have suggested monospace as a readable web font. Can anyone provide additional info on possible fonts that users might have that may be better than monospace so that I can chain fonts together to get the best possible result?
A great start is font-family: monospace. These fonts are designed to be unambiguous.
If you're really desperate to get it exactly right, you can render a little image in your chosen font on the server, then send that.
If readability is the most important thing for the password and you are required to have a specific font you can draw the text on an image on the server using your specific font then serve it to the browser.
The generic monospace font will be somewhat good at this, but not perfect. iIl10oO
However, the best solution is to make sure that the passwords do not contain ambiguous characters.
Try this font stack
font-family: "Lucida Console","Courier New",Monaco,"Nimbus Mono L",monospace;
99% of Windows has Lucida Console and courier new
91% of Mac has Courier New
31% of Linux has Nimbus Mono L
http://www.codestyle.org/servlets/FontStack?stack=Lucida%2BConsole%252CCourier%2BNew%252CMonaco%252CNimbus%2BMono%2BL&generic=monospace&x=5&y=8
As you describe it is intended for people at your work, there's possibly a bit more control on which browser they use. If this browser is modern enough, you can consider using #font-face to explicitly use the Crystal font in your interface.
You can read this article by Paul Irish to learn more about implementing #font-face.
Have a look at #font-face browser support to see which browsers support this feature yet.
Can anyone provide additional info on
possible fonts that users might have
that may be better than monospace so
that I can chain fonts together to get
the best possible result?
On Linux, I like Bitstream Vera Sans Mono (or its more extensive variant DejaVu Sans Mono), on Windows I think Consolas is great (but only if Cleartype is on). Mac users might be fond of Monaco. You could name them all in your font declaration, before mentioning the fallback option "monospace" (which probably is Courier New on Windows machines).
I distributed serial keys before using Courier New and it was a bad idea. We regularly had calls about people who didn't read the key right.
We fixed the issue by using VerdanaMono, but Verdana is very similar (we wanted the keys to all take the same horizontal space). We also provided a list of possible characters so people could compare. (It looked like this : "The available characters are : ABCD... abcde... 1234...").

Multi-lingual Flex app - preferred fonts for embedding specific languages

I work on a collaboration web app, built with Flex 3, that needs to support multiple languages.
Does anyone know which fonts are best for creating embedded font libraries for Chinese, Korean, Japanese, and Russian languages? I know Arial Unicode MS will do the job, but I don't know if it will do the job best.
Localization alone won't solve the entire problem: chat input and display, for example, need to support multiple languages in the same textfield - anything typed in Chinese needs to display in Chinese; anything typed in English needs to display in English.
Using _sans is an option, but is far from preferred.
Thanks.
Went with an approach that switches TextFormat of characters based on unicode value. So, characters in the primary language display in the preferred (embedded) font, while characters in other languages display in _sans.
This works out really nicely, but requires that you inspect every character that is added to a field, and requires you to inspect everything when a deletion occurs. Kind of a lot of inspecting and I'm sure a textfield with a lot of content would start running into performance issues, but this is for a chat tool, so that isn't too critical of a use case.

Resources