From 3288eeda071240bbe345f72e822db749ca23fcd1 Mon Sep 17 00:00:00 2001 From: robert Date: Fri, 20 Feb 2004 13:34:01 +0000 Subject: [PATCH] adding slides page and the slides themselves --- fosdem2002/ChromeTalk-outliner.html | 22 ++++ fosdem2003/MT502_chromeview.png | Bin 0 -> 18178 bytes fosdem2003/MT502_update.png | Bin 0 -> 11148 bytes fosdem2003/file.gif | Bin 0 -> 69 bytes fosdem2003/folder-closed.gif | Bin 0 -> 69 bytes fosdem2003/folder-open.gif | Bin 0 -> 73 bytes fosdem2003/index.html | 65 +++++++++++ fosdem2003/l10ntalk.css | 148 +++++++++++++++++++++++++ fosdem2003/l10ntalk_01.html | 34 ++++++ fosdem2003/l10ntalk_02.html | 38 +++++++ fosdem2003/l10ntalk_03.html | 49 +++++++++ fosdem2003/l10ntalk_04.html | 62 +++++++++++ fosdem2003/l10ntalk_05.html | 60 ++++++++++ fosdem2003/l10ntalk_06.html | 73 +++++++++++++ fosdem2003/l10ntalk_07.html | 78 +++++++++++++ fosdem2003/l10ntalk_08.html | 164 ++++++++++++++++++++++++++++ fosdem2003/l10ntalk_09.html | 45 ++++++++ fosdem2003/l10ntalk_10.html | 75 +++++++++++++ fosdem2003/l10ntalk_11.html | 54 +++++++++ fosdem2003/l10ntalk_12.html | 46 ++++++++ fosdem2003/l10ntalk_overview.html | 36 ++++++ fosdem2004/bug.png | Bin 0 -> 600 bytes fosdem2004/index.html | 67 ++++++++++++ fosdem2004/l10ntalk.css | 108 ++++++++++++++++++ fosdem2004/l10ntalk_01.html | 58 ++++++++++ fosdem2004/l10ntalk_02.html | 92 ++++++++++++++++ fosdem2004/l10ntalk_03.html | 64 +++++++++++ fosdem2004/l10ntalk_04.html | 59 ++++++++++ fosdem2004/l10ntalk_end.html | 47 ++++++++ fosdem2004/l10ntalk_glossary.html | 31 ++++++ fosdem2004/l10ntalk_overview.html | 30 +++++ fosdem2004/minus.png | Bin 0 -> 218 bytes fosdem2004/plus.png | Bin 0 -> 245 bytes index.html | 39 +++++++ 34 files changed, 1644 insertions(+) create mode 100755 fosdem2002/ChromeTalk-outliner.html create mode 100755 fosdem2003/MT502_chromeview.png create mode 100755 fosdem2003/MT502_update.png create mode 100755 fosdem2003/file.gif create mode 100755 fosdem2003/folder-closed.gif create mode 100755 fosdem2003/folder-open.gif create mode 100755 fosdem2003/index.html create mode 100755 fosdem2003/l10ntalk.css create mode 100755 fosdem2003/l10ntalk_01.html create mode 100755 fosdem2003/l10ntalk_02.html create mode 100755 fosdem2003/l10ntalk_03.html create mode 100755 fosdem2003/l10ntalk_04.html create mode 100755 fosdem2003/l10ntalk_05.html create mode 100755 fosdem2003/l10ntalk_06.html create mode 100755 fosdem2003/l10ntalk_07.html create mode 100755 fosdem2003/l10ntalk_08.html create mode 100755 fosdem2003/l10ntalk_09.html create mode 100755 fosdem2003/l10ntalk_10.html create mode 100755 fosdem2003/l10ntalk_11.html create mode 100755 fosdem2003/l10ntalk_12.html create mode 100755 fosdem2003/l10ntalk_overview.html create mode 100644 fosdem2004/bug.png create mode 100755 fosdem2004/index.html create mode 100755 fosdem2004/l10ntalk.css create mode 100755 fosdem2004/l10ntalk_01.html create mode 100755 fosdem2004/l10ntalk_02.html create mode 100755 fosdem2004/l10ntalk_03.html create mode 100755 fosdem2004/l10ntalk_04.html create mode 100755 fosdem2004/l10ntalk_end.html create mode 100755 fosdem2004/l10ntalk_glossary.html create mode 100755 fosdem2004/l10ntalk_overview.html create mode 100644 fosdem2004/minus.png create mode 100644 fosdem2004/plus.png create mode 100644 index.html diff --git a/fosdem2002/ChromeTalk-outliner.html b/fosdem2002/ChromeTalk-outliner.html new file mode 100755 index 0000000..45a5614 --- /dev/null +++ b/fosdem2002/ChromeTalk-outliner.html @@ -0,0 +1,22 @@ + + + Mozilla Dev Meeting Europe 2002 + + + +

Outliner of Chrome - L10n/Themes talk

+

by Robert Kaiser <KaiRo@KaiRo.at>

+ +<outliner id="chrome_l10n_themes_talk" flex="until 18:00"> +
  <outlinercols> +
    <outlinercol id="WhatChrome" label="What is this chrome stuff anyway?"> +
    <outlinercol id="MozChrome" label="What is chrome in Mozilla?"> +
    <outlinercol id="ChromeURLs" label="How can content find its locale and skin files?"> +
    <outlinercol id="ChromeRegistry" label="How does Mozilla know what/where chrome is installed?"> +
    <outlinercol id="contents.rdf" label="How can chrome packs give their info to chrome registry?"> +
  </outlinercols> +
  <outlinerchildren id="discussion"/> +
</outliner> + + + diff --git a/fosdem2003/MT502_chromeview.png b/fosdem2003/MT502_chromeview.png new file mode 100755 index 0000000000000000000000000000000000000000..80885e42986d6117bc37154f56048b3f3ff12214 GIT binary patch literal 18178 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 literal 0 HcmV?d00001 diff --git a/fosdem2003/file.gif b/fosdem2003/file.gif new file mode 100755 index 0000000000000000000000000000000000000000..52f8e13632cbe9a5bfa201efb7b303950cce2a45 GIT binary patch literal 69 zcmZ?wbhEHb6kyN;(f85zL9U=08m=@*Is literal 0 HcmV?d00001 diff --git a/fosdem2003/index.html b/fosdem2003/index.html new file mode 100755 index 0000000..542d92b --- /dev/null +++ b/fosdem2003/index.html @@ -0,0 +1,65 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + + + + +

Localization (L10n): Achievements and Future Directions

+ +
+This talk will give a short insight of +
    +
  • How to make the Mozilla UI localizable (entities, string bundles)
  • +
  • How Mozilla can switch to different languages (chrome URIs, chrome registry)
  • +
  • How we do the actual localization work (MozillaTranslator)
  • +
  • Current problems (localeVersion updates etc.)
  • +
  • Useful resources for localization (l10ntools etc.)
  • +
+There will be enough time for discussion of this between slides and after the presentation. +
+ +
+

Speaker: Robert Kaiser <KaiRo@KaiRo.at>

+
+
    +
  • Living in Steyr, Upper Austria, and attending Vienna University to become a Chemistry and Physics teacher
  • +
  • Known as "KaiRo" on IRC
  • +
  • Maintainer of the Mozilla German Project (http://mozilla.kairo.at/, + sometimes called "German (Austria)" because of it's internal name of "de-AT") + since late 1999, first German Mozilla version was M12, released at 2000-01-01. + Counting Download numbers of ftp.mozilla.org, Mozilla German seems to be the most-used Mozilla Localization.
  • +
  • Creator of EarlyBlue and LCARStrek themes
  • +
  • Recently contributing some smaller things to main Mozilla trunk, like + resolving breakage of language switching pref panel, localeVersion updates, + making about:plugins themable ("make it look better") and localizable
  • +
+
+
+ +
+

The slides

+
+This presentation was created for the European Mozilla Developer Meeting 2003 at +FOSDEM in Brussels. +
The slides for this talk are written in HTML 4.01 Strict and CSS. +
You need to turn on Mozilla's "Site Navigation Bar" for navigating through the slides. +Click "Next" to start with the first slide from this index page. "Start" will take you back to this index from all the slides. +
There's now an overview page that allows access of all slides without the navigation bar + - and remember to look at the problems slide! +
All slides and images © 02/2003 Robert Kaiser. +
+
+ + + diff --git a/fosdem2003/l10ntalk.css b/fosdem2003/l10ntalk.css new file mode 100755 index 0000000..86ea90b --- /dev/null +++ b/fosdem2003/l10ntalk.css @@ -0,0 +1,148 @@ +/* styles fpr L10n talk slides */ + +body { + margin: 0px; + padding: 3px; + border: 0px; + font-family: Arial,Helvetica,sans-serif; + font-size: 16px; + color: black; + background-color: white; + +} + +h1 { + margin: 0.5em; + font-size: 32px; + font-weight: bold; + text-align: center; +} + +h2 { + margin: 0.5em; + font-size: 28px; + font-weight: bold; + text-align: center; +} + +h3 { + margin: 0.5em; + font-size: 24px; + font-weight: bold; + text-align: center; +} + +h4 { + margin: 0.5em; + font-size: 19px; + font-weight: bold; + text-align: left; +} + +div.explanation { + margin: 1em; + padding: 0.5em; + border: 1px solid grey; + background-color: #FFFFF8; +} + +div.sample { + margin: 1em; + padding: 0px; + border: 1px solid grey; + background-color: #FFF8F8; +} + +div.samplecontent { + margin: 0px; + padding: 0.5em; + border: 0px; + border-top: 1px solid grey; + background-color: #F8F8FF; +} + +p.sampledesc { + margin: 0.5em; + font-weight: bold; +} + +span.hilite { + font-weight: bold; + color: #FF8080; +} + +ul.filetree { + margin: 0px; + padding: 0px; + border: 0px; + margin: 0px 0px 0px 16px; + font-size: 0.8em; +} + +ul.filetree ul { + margin: 0px 0px 0px 16px; + padding: 0px; + border: 0px; +} +ul.filetree li { + margin: 0px; + padding: 0px; + border: 0px; + list-style-image:url(folder-open.gif) +} + +ul.filetree li.file { + list-style-image:url(file.gif) +} + +ul.filetree li.dirclosed { + list-style-image:url(folder-closed.gif) +} + +ul.filetree *|*:-moz-list-bullet { + margin-right: 3px; +} + +ul.rdftree { + list-style-type: none; + margin: 0px; + padding: 0px; + border: 0px; + margin: 0px 0px 0px 0px; + font-size: 0.8em; +} + +ul.rdftree ul { + list-style-type: none; + margin: 0px 0px 0px 16px; + padding: 0px; + border: 0px; +} + +ul.rdftree li { + margin: 0px; + padding: 0px; + border: 0px; +} + +ul.rdftree > li.starttag { + margin: 0.5em 0px 0px 0px; +} + +ul.smalltree { + margin: 0px; + padding: 0px; + border: 0px; + margin: 0px 0px 0px 15px; + font-size: 0.8em; +} + +ul.smalltree > li { + margin: 0px; + padding: 0px; + border: 0px; +} + +span.treespacer { + width: 1em; +} diff --git a/fosdem2003/l10ntalk_01.html b/fosdem2003/l10ntalk_01.html new file mode 100755 index 0000000..2d0707f --- /dev/null +++ b/fosdem2003/l10ntalk_01.html @@ -0,0 +1,34 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + + + + +

used terms in this talk

+ +
+A rough list of special terms that will be used here and/or are commonly used in the L10n area: +
    +
  • L10n: Localization (an "L", followed by 10 characters, then an "n"): Customizing Software for a specific local area (mainly translation)
  • +
  • i18n: Internationalization (an "i", followed by 18 characters, then an "n"): Making Software internationally useable (e.g. support input with Asian keyboards etc.)
  • +
  • L12y: Localizability (available as a bugzilla.mozilla.org keyword, added for bugs that block L10n of some feature)
  • +
  • locale: a set/package of locally customized items (e.g. a "language pack")
  • +
  • theme: In Mozilla terms, a theme is a set of CSS files and images (perhaps even some XBL), sometimes also called "skin"
  • +
  • XUL: "XML User interface Language" (pronounced "zool"), an XML dialect used by Mozilla to describe its UI (User Interface)
  • +
  • XPI: "X(cross)-Platform install": cross-platform file format for installation of projects within the Mozilla framework. The XPI file is a zip-format file that contains a JavaScript installation script (install.js)
  • +
  • JAR: This file type that originates from "Java Archive Resources" is a compressed format used for Mozilla's chrome. It's basically a zip format file, containing chrome files and RDF files that describe the content and can be fed into chrome registry (contents.rdf).
  • +
+Terms like XML, XML entity, DTD, URI, etc. should be known by most people attending this talk, I think... + + diff --git a/fosdem2003/l10ntalk_02.html b/fosdem2003/l10ntalk_02.html new file mode 100755 index 0000000..932ee1e --- /dev/null +++ b/fosdem2003/l10ntalk_02.html @@ -0,0 +1,38 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + + + + + +

a sample XUL file

+ +
+XUL - as we all know, the "XML User interface Language" - is an XML file format. +
All UI includes some text, and so do XUL files. +
+ +
+

Sample XUL: openLocation.xul

+
+<?xml version="1.0"?> +
<dialog ... title="Mozilla - Open Web Location"> +
... +
<description>Enter the web location (URL), or specify the local file you would like to open:</description> +
... +
</dialog> +
+
+ + + diff --git a/fosdem2003/l10ntalk_03.html b/fosdem2003/l10ntalk_03.html new file mode 100755 index 0000000..9af4f0e --- /dev/null +++ b/fosdem2003/l10ntalk_03.html @@ -0,0 +1,49 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + + + + + +

adding a DTD file

+ +
+To be able to localize all that text, we need to declare general (text) entities for +all locale sensitive resources in an external DTD (Document Type Definition) subset and use an +XML entity reference, "&entity_name;", to reference them. +
The DTD file is placed in an appropriate "locale" directory of our project. +
+ +
+

Sample XUL: openLocation.xul

+
+<?xml version="1.0"?> +
<!DOCTYPE dialog SYSTEM "chrome://communicator/locale/openLocation.dtd"> +
<dialog ... title="&caption.label;"> +
... +
<description>&enter.label;</description> +
... +
</dialog> +
+
+ +
+

Sample DTD: openLocation.dtd

+
+<!ENTITY caption.label "Mozilla - Open Web Location"> +
<!ENTITY enter.label "Enter the web location (URL), or specify the local file you would like to open:"> +
+
+ + + diff --git a/fosdem2003/l10ntalk_04.html b/fosdem2003/l10ntalk_04.html new file mode 100755 index 0000000..f864df6 --- /dev/null +++ b/fosdem2003/l10ntalk_04.html @@ -0,0 +1,62 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + + + + + +

using more than one DTD file

+ +
+If we need more than one DTD file for one XUL file, we're using external entities +inside the XUL file's DOCTYPE declaration. +
+ +
+

Sample XUL: openLocation.xul

+
+<?xml version="1.0"?> +
<!DOCTYPE dialog [ +
  <!ENTITY % brandDTD SYSTEM "chrome://global/locale/brand.dtd" > +
  %brandDTD; +
  <!ENTITY % openDialogDTD SYSTEM "chrome://communicator/locale/openLocation.dtd" > +
  %openDialogDTD; +
]> +
<dialog ... title="&brandShortName; - &caption.label;"> +
... +
<description>&enter.label;</description> +
... +
        <menuitem value="0" id="currentWindow" label="&topWindow.label;"/> +
... +
</dialog> +
+
+ +
+

Sample DTD: openLocation.dtd

+
+<!ENTITY caption.label "Open Web Location"> +
<!ENTITY enter.label "Enter the web location (URL), or specify the local file you would like to open:"> +
<!ENTITY topWindow.label "Current Navigator window"> +
+
+ +
+

Sample DTD: brand.dtd

+
+<!ENTITY brandShortName "Mozilla"> +
+
+ + + diff --git a/fosdem2003/l10ntalk_05.html b/fosdem2003/l10ntalk_05.html new file mode 100755 index 0000000..a3aa591 --- /dev/null +++ b/fosdem2003/l10ntalk_05.html @@ -0,0 +1,60 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + + + + + +

using JavaScript to display text

+ +
+Sometimes we have to display text dynamically in the UI though, which XUL alone can't do. +Most times JavaScript is used for that. C++ is sometimes used as well, it uses a similar technique for +displaying localized content though, and it uses the same type of files for localization. +
+ +
+

Sample XUL: openLocation.xul, calling some JS code

+
+<?xml version="1.0"?> +
<!DOCTYPE dialog SYSTEM "chrome://communicator/locale/openLocation.dtd"> +
<dialog id="openLocation" ... title="&caption.label;" onLoad="onLoad();"> +
<script type="application/x-javascript" src="chrome://communicator/content/openLocation.js"/> +
... +
        <menuitem value="0" id="currentWindow" label="&topWindow.label;"/> +
... +
</dialog> +
+
+ +
+

Sample JavaScript: openLocation.js

+
+... +
function onLoad() +
{ +
  dialog.main = document.getElementById("openLocation"); +
  dialog.openTopWindow = document.getElementById("currentWindow"); +
  if (!browser) { +
    // No browser supplied - we are calling from Composer +
    // Change string to make more sense for Composer +
    dialog.openTopWindow.setAttribute("label", "Existing Navigator window"); +
    // change title to 'Open Location with Mozilla' +
    dialog.open.setAttribute("title", "Open Location with Mozilla"); +
  } +
} +
+
+ + + diff --git a/fosdem2003/l10ntalk_06.html b/fosdem2003/l10ntalk_06.html new file mode 100755 index 0000000..39a9b52 --- /dev/null +++ b/fosdem2003/l10ntalk_06.html @@ -0,0 +1,73 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + + + + + +

using string bundles with JavaScript

+ +
+For localization of text that gets displayed with JavaScript, there are multiple techniques. +First, we could use <data>&some.text;</data> constructs (which don't get displayed in the UI), +read their values from JS and use them for displaying. This isn't a very elegant solution though. +
The normal solution for this situation is to use string bundles, which are saved in +Java-style .properties files. String bundles can be accessed in two ways: First, they can be read by a XUL +<stringbundle> element: +
+ +
+

Sample XUL: openLocation.xul, calling some JS code

+
+<?xml version="1.0"?> +
<!DOCTYPE dialog SYSTEM "chrome://communicator/locale/openLocation.dtd"> +
<dialog id="openLocation" ... title="&caption.label;" onLoad="onLoad();"> +
<script type="application/x-javascript" src="chrome://communicator/content/openLocation.js"/> +
<stringbundle id="openLocationBundle" src="chrome://communicator/locale/openLocation.properties"/> +
... +
        <menuitem value="0" id="currentWindow" label="&topWindow.label;"/> +
... +
</dialog> +
+
+ +
+

Sample JavaScript: openLocation.js

+
+... +
function onLoad() +
{ +
  dialog.main = document.getElementById("openLocation"); +
  dialog.openTopWindow = document.getElementById("currentWindow"); +
  dialog.bundle = document.getElementById("openLocationBundle"); +
  if (!browser) { +
    // No browser supplied - we are calling from Composer +
    // Change string to make more sense for Composer +
    dialog.openTopWindow.setAttribute("label", dialog.bundle.getString("existingNavigatorWindow")); +
    // change title to 'Open Location with Mozilla' +
    dialog.open.setAttribute("title", dialog.bundle.getString("caption2.label")); +
  } +
} +
+
+ +
+

Sample string bundle: openLocation.properties

+
+existingNavigatorWindow=Existing Navigator window +
caption2.label=Open Location with Mozilla +
+
+ + + diff --git a/fosdem2003/l10ntalk_07.html b/fosdem2003/l10ntalk_07.html new file mode 100755 index 0000000..1e75329 --- /dev/null +++ b/fosdem2003/l10ntalk_07.html @@ -0,0 +1,78 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + + + + + +

using the string bundle service

+ +
+The second way to access string bundles is to call the string bundle service directly from JavaScript +(the string bundle doesn't have to be refrenced in the XUL file, and stays outside the DOM tree): +
+ +
+

Sample XUL: openLocation.xul, calling some JS code

+
+<?xml version="1.0"?> +
<!DOCTYPE dialog SYSTEM "chrome://communicator/locale/openLocation.dtd"> +
<dialog id="openLocation" ... title="&caption.label;" onLoad="onLoad();"> +
<script type="application/x-javascript" src="chrome://communicator/content/openLocation.js"/> +
... +
        <menuitem value="0" id="currentWindow" label="&topWindow.label;"/> +
... +
</dialog> +
+
+ +
+

Sample JavaScript: openLocation.js

+
+... +
function onLoad() +
{ +
  dialog.main = document.getElementById("openLocation"); +
  dialog.openTopWindow = document.getElementById("currentWindow"); +
  var strBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService); +
  var brandbundle = strBundleService.createBundle("chrome://global/locale/brand.properties"); +
  var dialogbundle = strBundleService.createBundle("chrome://communicator/locale/openLocation.properties"); +
  if (!browser) { +
    // No browser supplied - we are calling from Composer +
    // Change string to make more sense for Composer +
    dialog.openTopWindow.setAttribute("label", dialogbundle.GetStringFromName("existingNavigatorWindow")); +
    // change title to 'Open Location with Mozilla' +
    var brandShortName = brandbundle.GetStringFromName("brandShortName"); +
    dialog.open.setAttribute("title", dialogbundle.getFormattedString("caption2.label", brandShortName)); +
  } +
} +
+
+ +
+

Sample string bundle: openLocation.properties

+
+existingNavigatorWindow=Existing Navigator window +
caption2.label=Open Location with %S +
+
+ +
+

Sample string bundle: brand.properties

+
+brandShortName=Mozilla +
+
+ + + diff --git a/fosdem2003/l10ntalk_08.html b/fosdem2003/l10ntalk_08.html new file mode 100755 index 0000000..990a307 --- /dev/null +++ b/fosdem2003/l10ntalk_08.html @@ -0,0 +1,164 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + + + + + +

chrome URIs / chrome registry

+ +
+The DTD file is referenced by a chrome URI, e.g. "chrome://communicator/locale/openLocation.dtd". +
All chrome URIs have the form of chrome://<package>/{content|locale|skin}/<path-to-file>. +
To which file on disk (or in a .jar package) this URI resolves, is determined by the chrome registry: +The chrome registry knows which locales (e.g. en-US, de-AT, it-IT) are installed for which packages +(e.g. communicator, navigator, messenger), and which locale is selected for those packages. +
As a side note, the chrome registry stores the same information for themes as well. +
+ +
+

Example directory tree with files

+
+
    +
  • mozilla +
      +
    • chrome +
        +
      • comm +
          +
        • content +
            +
          • communicator +
              +
            • openLocation.xul
            • +
            +
          • +
          • navigator
          • +
          +
        • +
        +
      • +
      • en-US.jar +
          +
        • locale +
            +
          • en-US +
              +
            • communicator +
                +
              • openLocation.dtd
              • +
              • openLocation.properties
              • +
              +
            • +
            • global +
                +
              • brand.dtd
              • +
              • brand.properties
              • +
              +
            • +
            • navigator
            • +
            +
          • +
          +
        • +
        +
      • +
      • de-AT.jar +
          +
        • communicator +
            +
          • openLocation.dtd
          • +
          • openLocation.properties
          • +
          +
        • +
        • global +
            +
          • brand.dtd
          • +
          • brand.properties
          • +
          +
        • +
        • navigator
        • +
        +
      • +
      +
    • +
    +
  • +
+
+
+ +
+

Sample chrome registry (main chrome.rdf + profile's chrome.rdf)

+
+
    +
  • ...
  • +
  • <RDF:Seq about="urn:mozilla:package:root"> +
      +
    • <RDF:li resource="urn:mozilla:package:communicator"/>
    • +
    • <RDF:li resource="urn:mozilla:package:global"/>
    • +
    • ...
    • +
    +
  • +
  • </RDF:Seq> +
  • <RDF:Description about="urn:mozilla:package:communicator" c:baseURL="resource:/chrome/comm/content/communicator/" c:localeVersion="1.3b" ...> +
      +
    • <c:selectedLocale resource="urn:mozilla:locale:de-AT:communicator"/>
    • +
    +
  • +
  • </RDF:Description> +
  • <RDF:Description about="urn:mozilla:package:global" c:baseURL="jar:resource:/chrome/toolkit.jar!/content/global/" c:localeVersion="1.3b" ...> +
      +
    • <c:selectedLocale resource="urn:mozilla:locale:de-AT:global"/>
    • +
    +
  • +
  • </RDF:Description> +
  • <RDF:Seq about="urn:mozilla:locale:root"> +
      +
    • <RDF:li resource="urn:mozilla:locale:de-AT"/>
    • +
    • <RDF:li resource="urn:mozilla:locale:AT"/>
    • +
    • <RDF:li resource="urn:mozilla:locale:en-US"/>
    • +
    • <RDF:li resource="urn:mozilla:locale:US"/>
    • +
    +
  • +
  • </RDF:Seq> +
  • <RDF:Description about="urn:mozilla:locale:en-US:communicator" c:baseURL="jar:resource:/chrome/en-US.jar!/locale/en-US/communicator/" c:localeVersion="1.3b"> +
      +
    • <c:package resource="urn:mozilla:package:communicator"/>
    • +
    +
  • +
  • </RDF:Description> +
  • <RDF:Description about="urn:mozilla:locale:en-US:global" c:baseURL="jar:resource:/chrome/en-US.jar!/locale/en-US/global/" c:localeVersion="1.3b"> +
      +
    • <c:package resource="urn:mozilla:package:global"/>
    • +
    +
  • +
  • </RDF:Description> +
  • <RDF:Description about="urn:mozilla:locale:de-AT:communicator" c:baseURL="jar:resource:/chrome/de-AT.jar!/communicator/" c:localeVersion="1.3b"> +
      +
    • <c:package resource="urn:mozilla:package:communicator"/>
    • +
    +
  • +
  • </RDF:Description> +
  • <RDF:Description about="urn:mozilla:locale:de-AT:global" c:baseURL="jar:resource:/chrome/de-AT.jar!/global/" c:localeVersion="1.3b"> +
      +
    • <c:package resource="urn:mozilla:package:global"/>
    • +
    +
  • +
  • </RDF:Description> +
+
+
+ + + diff --git a/fosdem2003/l10ntalk_09.html b/fosdem2003/l10ntalk_09.html new file mode 100755 index 0000000..c7c8e4c --- /dev/null +++ b/fosdem2003/l10ntalk_09.html @@ -0,0 +1,45 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + + + + + +

translating with MozillaTranslator

+ +
+MozillaTranslator (http://www.mozillatranslator.org/) is a L10n tool +created by a Mozilla L10n contributor, Henrik Lynggaard, from Denmark. +
The tool is a Java application, version 5 and up need at least Sun JRE 1.4.x to run. +
Sometimes it's a bit hard to configure, but once set up it's nice and easy to maintain the L10n. +It reads the files directly from the .jar, and is able to detect just the changes since the last update, so you only have +to look at the really changed texts. It can export .jar files again, and even create ready-to-install XPI files. +It's also capable of maintaining multiple products within one MozillaTranslator installation. +
+ +
+

Example window: updating a product (yes, that's Mozilla calendar)

+
+MozillaTranslator 5.02 update view +
+
+ +
+

Example window: chrome view of a file (openLocation.dtd)

+
+MozillaTranslator 5.02 chrome view +
+
+ + + diff --git a/fosdem2003/l10ntalk_10.html b/fosdem2003/l10ntalk_10.html new file mode 100755 index 0000000..54b31c2 --- /dev/null +++ b/fosdem2003/l10ntalk_10.html @@ -0,0 +1,75 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + + + + + +

current problems with L10n work (helpwanted!)

+ +
+As always, there are some more or less big problems in current Mozilla L10n: +
    +
  • Hardcoded content: Some projects still have hardcoded un-localizable code in their UI files, + e.g. Calendar and ChatZilla - but also Browser and MailNews have a bunch of those left. + A big part of this is low-hanging fruit for contributors and blocks L10n severily sometimes. +
    All relevant bugs (should) have the "L12y" keyword set. + Query for All bugs with L12y keyword set + (44 bugs found as of Fri Feb 7 06:30:17 PST 2003).
  • +
  • Ignorance: Many US programmers think "It works for me and my collegues, and so it's alright" - + and they forget about i18n issues or things like locale switching altogether. +
    I had to fix breakage of the pref panel four times from 2002-03-31 to 2002-08-26 - + the FastLoad workaround (see below) is the fith issue that broke it during that time span! + See CVS Log of the pref panel.
  • +
  • Content packs: Content packs (a.k.a. "region" packs) were a somehow interesting idea, but they + aren't used by anyone. 99.999999% of our users only use one language pack and one content pack together. + They should get re-merged into one pack again, the files should stay seperate though, as it's quite good + to have all URLs that are used in the UI seperated from the other content. +
    It looks as even Netscape, who had originally created that split-up has no interest any more in those + content packs. It even blocks me from renaming the generic German language pack to a simple "de.jar". +
  • localeVersion updates: locale packs from different Mozilla versions are incompatible because of + changed, added or removed texts in the UI. Quite some time ago, we introduced a localeVersion attribute + in chrome registry that has to fit, so that Mozilla knows it has a working set of chrome files. +
    So far, so good. Lots of contents.rdf files in the tree carry that information, which is hardcoded + there, and it's a big pain to update them for every version. + See bug 175853, + bug 185698 + and bug 154927.
  • +
  • no fallback mechanism: If people would try to use some non-fitting locale packs, they get crashes + and XML errors because we have no fallback if lookup for a locale string fails somewhere (string or file not found). + See bug 71797.
  • +
  • XUL FastLoad problems: XUL FastLoad fails to update the strings after a locale switch. + There is a workaround in place, which also fails sometimes, and was promised to be replaced by a fix for 1.1 final. + See bug 142623.
  • +
  • XPI installation problems - error -239: This bug is a really strange thing, and does hurt us mainly on unix. + When installing an XPI on most unix systems and some other systems as well, it fails with + error -239 (CHROME_REGISTRY_ERROR) for no obvious reason. +
    We're using a workaround for unix, but this workaround prohibits installing a new locale into the + profile directory, which would be needed for non-root users in the common case. + See bug 109044.
  • +
  • No stringbundles from non-privileged files: This started to hurt me when trying to make about:plugins + localizable (see bug 56863). + In fact, I had to give about:plugins full chrome privileges just to access stringbundles - this opened + a potential security issue though. Even if about:plugins might go a different way now (HTML created by C++), + this is a potential issue for other areas. + See bug 98298.
  • +
  • Resources: Currently, there's no single collection of documentation, tools, etc. for L10n people. + We're currently working on getting such a thing up and running now though. + See l10ntools.mozdev.org.
  • +
+This should be some points to start for contributors who want to help us, and an overview what's bugging +us most currently. I'm sure the list is not complete, but it's what came to my mind when writing the slides... +
+ + + diff --git a/fosdem2003/l10ntalk_11.html b/fosdem2003/l10ntalk_11.html new file mode 100755 index 0000000..a9bddb0 --- /dev/null +++ b/fosdem2003/l10ntalk_11.html @@ -0,0 +1,54 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + + + + + +

useful resources for L10n work

+ +
+There are a few places to look for Mozilla L10n resources currently: +
    +
  • MLP: The Mozilla Localization Project + is hosted on mozilla.org and contains a list of all major contributors to all languages supported on any + Mozilla version. There's a small howto, a page with various locale packs available for Mozilla, and + ftp.mozilla.org + hosts downloads for locale packs and localized Mozilla binaries. + (There are currently 89 L10n projects [excluding en-US] registered, 10 projects have released 1.3a versions, + 30 have 1.2.1 available).
  • +
  • MozillaTranslator: The MozillaTranslator tool + has its own website, with a mini-howto (contributors to the documentation wanted!), downloads of + the tool itself as well as its source code, and a download page for language packs + (often a bit outdated though).
  • +
  • Creating Applications with Mozilla: Chapter 11 + of the book about creating Mozilla applications (this chapter was written by Brian King) + is worth a look as well, esp. if you're writing your own application using the Mozilla framework + (I haven't come around to read it though).
  • +
  • l10ntools: Finally, the new l10ntools MozDev project + is currently built up and should contain a bunch of tools to deal with L10n work, some docs, and some + link to those other resources. +
    One subproject is mozpotools, which allows converting Mozilla's locale files to the GNU gettext + .po format, use the common translation tools for that format (KBabel etc.), and then convert the files back + to Mozilla's format. +
    l10ntools will also provide XPI install scripts for use in a locale's installable XPI language packs, + scripts for creating XPI packs from the .jar files that get exported by MozillaTranslator, and even + scripts for creating localized binaries from the XPI file created above and an existing .tar.gz or .zip + binary Mozilla build, as well as some documentation about those tools and prbably general L10n issues. + Other useful tools will probably be added if people give them to us.
  • +
+In the future, l10ntools should have link to all those resources (or host them theirselves). +
+ + + diff --git a/fosdem2003/l10ntalk_12.html b/fosdem2003/l10ntalk_12.html new file mode 100755 index 0000000..5fe12b6 --- /dev/null +++ b/fosdem2003/l10ntalk_12.html @@ -0,0 +1,46 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + + + + +

open discussion

+ +
+We now have some time for discussion. +
    +
  • Any open questions?
  • +
  • Any unmentioned issues?
  • +
  • Anyone wanting to help us?
  • +
  • Anything I forgot to mention?
  • +
+
+ +
+

Thank you

+
+ +Thanks for your attention. +Danke für Ihre Aufmerksamkeit. +Merci de votre attention. +Gracias por su atención. +Bedankt voor uw aandacht. +Tack för er uppmärksamhet. +Grazie per la sua attenzioneconfidenza. + +
+
+ + + diff --git a/fosdem2003/l10ntalk_overview.html b/fosdem2003/l10ntalk_overview.html new file mode 100755 index 0000000..9436d71 --- /dev/null +++ b/fosdem2003/l10ntalk_overview.html @@ -0,0 +1,36 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + +

Overview/Contents: Localization (L10n) Talk

+ + + + + diff --git a/fosdem2004/bug.png b/fosdem2004/bug.png new file mode 100644 index 0000000000000000000000000000000000000000..e8516aa548b594fa12f962a24c5b8b4dc3c94769 GIT binary patch literal 600 zcmV-e0;m0nP)Q$ZBQe`oHk%^!m(LZL=cQB+*$u5Ri^5Ffx>5vuqKt%w`J7clKY=mUs? zX5mr@xN%{~1BgM;RTD(C7H^X@F`08*BsYz{q#q0%X6Af+=lf=a5uV-+R&HPO-<)Ed zzc^tJ2AIL;pX8sv#DkkGEMBBs$g;IoDyf-i6h*oeMQW8n8hEQZb7A~-HexCRF4BG-4 zMUe{Vs5Sw0BI=y0hCx_L`og4;EU)uD9y!4bq*yHSrd&2KtJP{_GfV{U2kS{+kQ7I9 zJZbMT*XlCgACPG_8y3fZtX{86rBWe|V-NwPAps}NsQfp=^-C;XIm^33mfwl-$p{RW zA(%)|o%FyZMcm6hXeg%Uq6*6O?I?VT(V+dWxX6!~JfH z?4*J;3`7a~L0ZAF0xxFs>^i|u6<~sj;+>`yY{x8jhaLnR0H= + + + + + L10n talk - FOSDEM 2004 - Mozilla Meeting + + + + + + + + + + + +

Mozilla Localization (L10n) Status Update

+ +
+Localization seems to get a more important topic in Mozilla development. +
I'll give an update about +
    +
  • what the MLP is,
  • +
  • what has happened in the last year in this area,
  • +
  • where we are now (using the German project as an example),
  • +
  • and where are the problems for L10n currently / where we'd need help from other developers.
  • +
+I hope there will be enough time left for discussion of this between slides and after the presentation. +
+ +
+

Speaker: Robert Kaiser <KaiRo@KaiRo.at>

+
+
    +
  • Living in Steyr, Upper Austria, and attending Vienna University to become a Chemistry and Physics teacher
  • +
  • Known as "KaiRo" on IRC
  • +
  • Maintainer of the Mozilla German Project (http://mozilla.kairo.at/, + sometimes called "German (Austria)" because of it's internal name of "de-AT") + since late 1999, first German Mozilla version was M12, released at 2000-01-01. + Counting Download numbers of ftp.mozilla.org, Mozilla German seems to be the most-used Mozilla Localization.
  • +
  • Creator of EarlyBlue and LCARStrek themes
  • +
  • Contributing some smaller things to main Mozilla trunk, like + resolving breakage of language switching pref panel, localeVersion updates (and automating them), + making about:plugins themable ("make it look better") and localizable - recently even breaking tinderboxen...
  • +
+
+
+ +
+

The slides

+
+This presentation was created for the European Mozilla Developer Meeting 2004 at +FOSDEM in Brussels. +
The slides for this talk are written in HTML 4.01 Strict and CSS. +
You need to turn on Mozilla's "Site Navigation Bar" for navigating through the slides. +Click "Next" to start with the first slide from this index page. "Top" will take you back to this index from all the slides. +
An overview page that allows access of all slides without the navigation bar +is available, as well an a glossary page explaining some common terms used. +
If you want to look through them later, see http://kairo.mozdev.org/slides/fosdem2004/. +
All slides and images © 02/2004 Robert Kaiser. +
+
+ + + diff --git a/fosdem2004/l10ntalk.css b/fosdem2004/l10ntalk.css new file mode 100755 index 0000000..dcbb08a --- /dev/null +++ b/fosdem2004/l10ntalk.css @@ -0,0 +1,108 @@ +/* styles fpr L10n talk slides */ + +body { + margin: 0px; + padding: 3px; + border: 0px; + font-family: Arial,Helvetica,sans-serif; + font-size: 16px; + color: black; + background-color: white; + +} + +h1 { + margin: 0.5em; + font-size: 32px; + font-weight: bold; + text-align: center; +} + +h2 { + margin: 0.5em; + font-size: 28px; + font-weight: bold; + text-align: center; +} + +h3 { + margin: 0.5em; + font-size: 24px; + font-weight: bold; + text-align: center; +} + +h4 { + margin: 0.5em; + font-size: 19px; + font-weight: bold; + text-align: left; +} + +div.explanation { + margin: 1em; + padding: 0.5em; + border: 1px solid grey; + background-color: #FFFFF8; +} + +div.sample { + margin: 1em; + padding: 0px; + border: 1px solid grey; + background-color: #FFF8F8; +} + +div.samplecontent { + margin: 0px; + padding: 0.5em; + border: 0px; + border-top: 1px solid grey; + background-color: #F8F8FF; +} + +p.sampledesc { + margin: 0.5em; + font-weight: bold; +} + +span.hilite { + font-weight: bold; + color: #FF8080; +} + +pre.border { + border: 1px solid #FF8080; + padding: 0.5em; +} + +ul { + padding-left: 1.2em; +} +li.plus { + list-style-image:url("plus.png"); + margin: 0.5em 0; +} +li.minus { + list-style-image:url("minus.png"); + margin: 0.5em 0; +} + +ul.bugs > li { + list-style-image:url("bug.png"); + margin: 0.5em 0; +} + +ul.smalltree { + margin: 0px; + padding: 0px; + border: 0px; + margin: 0px 0px 0px 15px; + font-size: 0.8em; +} + +ul.smalltree > li { + margin: 0px; + padding: 0px; + border: 0px; +} diff --git a/fosdem2004/l10ntalk_01.html b/fosdem2004/l10ntalk_01.html new file mode 100755 index 0000000..8e0bbb1 --- /dev/null +++ b/fosdem2004/l10ntalk_01.html @@ -0,0 +1,58 @@ + + + + + + L10n talk - FOSDEM 2004 - Mozilla Meeting + + + + + + + + + + + + +

MLP - The Mozilla L10n Project

+ +
+The Mozilla Localization Project (MLP), +hosted on mozilla.org, "tries to help and ease the availability of mozilla.org products +toward different world cultures and languages through the support of the open source community." + +

The main goal is to encourage people to contribute localizations, +make them available to users, and provide communication channels for the contributors (we have the +n.p.m.l10n newsgroup, +an own product at Bugzilla, and the IRC Channel #mozl10n +as the most important resources for that). +
The second important goal is to make and keep the software localizable. +Again, Bugzilla is a great help there (the best tool for bugging developers - I guess that's where the name +comes from). More about that later. +
+ +
+

Localization projects

+
+All Mozilla L10n projects are volunteer efforts by relatively small groups of people or single persons. +
The MLP web pages contain lists of all registered L10n projects and their major contributors, +as well as their available builds. Currently, projects are listed for +Seamonkey +as well as Firefox and +Thunderbird. +
Seamonkey counts 100 L10n projects, Firefox has 39 and Thunderbird 22 listed +(as of 2004-02-19). +Not all of them have current build though. Mozilla 1.6 is available in 26 languages (plus en-US) +to this date, Firefox 0.8 was translated to 12 languages in the less than two weeks since its release, +Thunderbird 0.5 got up to 10 localizations in the same time. We can expect those three numbers to still +grow a bit, as we had 37 languages for Mozilla 1.5[.1], 24 for Firebird 0.7[.1], and 13 for Thunderbird 0.4. +

All packs and builds (sometimes a bit delayed though) available at +ftp.mozilla.org +(older builds are on archive.mozilla.org) +
+
+ + + diff --git a/fosdem2004/l10ntalk_02.html b/fosdem2004/l10ntalk_02.html new file mode 100755 index 0000000..ce543f0 --- /dev/null +++ b/fosdem2004/l10ntalk_02.html @@ -0,0 +1,92 @@ + + + + + + L10n talk - FOSDEM 2004 - Mozilla Meeting + + + + + + + + + + + + +

diff -D 02/2003 -D 02/2004 mozilla-l10n

+ +
+
--- mozilla-l10n        2003-02-FOSDEM
++++ mozilla-l10n        2004-02-FOSDEM
+@@ -a,b +x,y @@
+Well, let's make it a small bit less geeky ;-). So what has happened in the last year of Mozilla L10n? +
    +
  • big manual localeVersion change patches: locale packs from different Mozilla versions are incompatible because of + changed, added or removed texts in the UI. To avoid crashes or other side-effects, we have internal + versioning of locale in chrome registry, fed into it by contents.rdf files. +
    Those were previously hardcoded and I did big manual patches to change them. After I found a way to + insert the versions at build-time and patched the whole tree to do that using the C preprocessor + (bug 154927), + I was told we should use the XUL preprocessor. I made that change recently + (bug 232011) + and set tinderboxen on fire (as some of you may remember)... +
    After some help from tinderbox admins and bsmedberg (who had to fix make-jars.pl for a bug I triggered), + we show now be have that long-standing bug finally resolved (and themes will follow that way soon - + bug 234014). +
    BTW, all chrome version strings are now defined in + mozilla/config/chrome-versions.sh.
  • +
  • XPI error -239: When installing our locale XPI files, we often ran into XPInstall + error -239 (CHROME_REGISTRY_ERROR), especially on unix machines. This had been happening quite + frequently for at least 18 months (bug 109044), + and noone had an idea why that happened, when it started magically disappearing in some cases last summer. +
    DocWilco then filed a patch + for a case where he was still seeing (and which was "a tough one to crack"), and we didn't hear a lot about + that error again. He also improved reporting + of what happens when it still hits a -239 in a followup. +
    Another nasty problem is history now.
  • +
  • more attention to L10n: Starting with last December, L10n got more attention of + mozilla.org staff than in previous times. It all started with a staff meeting on 2003-12-08 (see the + "minutes" posting): +
    +     *Localisation packs*
    +
    +- Quarterly/monthly IRC meetings for l10n (blizzard, bart)
    +- What is our end goal for internationalization?
    +- Goal: 5 or 6 languages we ship pretty regularly, of reasonable to good
    +   quality
    +- Start incrementally
    +
    +- Agreed: translations need to be in CVS; too separated from release
    +   process
    +
    +- chofmann to write a message to l10n newsgroup:
    +   - 1) Tell people how to nominate bugs to drivers
    +   - 2) Mention monthly IRC chat, hosted by chofmann
    +        (gerv query: what time to have this? Hard to pick one which is
    +         good for everyone, because of timezone issues)
    +   - 3) If you have a localised version ready 1 week after 1.6, let us
    +        know now (or then) and we'll try and get it on the CD.
    +   - 4) There will be a string freeze after beta - it's a done deal
    +   - 5) We want your localisation by 1 week after our planned release
    +        date (But CD gets burned 2 days before we release)
    +
    +- We need a simple post-freeze string change process - Bugzilla keyword,
    +   post to newsgroup etc.
    + The first L10n IRC meeting was on 2003-12-15, The 1.6 CD shipped with a few important / finished-in-time + localization XPI packs, we're still hoping further actions will happen. The first string freeze (1.7b -> 1.7) + is still to happen, and getting translations into CVS is actually a quite old bug report, + bug 57878 that still doesn't have much attention, as well as the one for + getting German L10n into CVS (bug 179949). +
    Let's hope the positive movement of December can be carried on into the future.
  • +
  • Mozilla Europe: Just last week, the Mozilla Foundation Europe + has been launched, having a multi-language web site, and that probably will + attract even more users to localized versions of Mozilla and its derivates. +
    We'll see what this means to our L10n projects...
  • +
+
+ + + diff --git a/fosdem2004/l10ntalk_03.html b/fosdem2004/l10ntalk_03.html new file mode 100755 index 0000000..0bae9a5 --- /dev/null +++ b/fosdem2004/l10ntalk_03.html @@ -0,0 +1,64 @@ + + + + + + L10n talk - FOSDEM 2004 - Mozilla Meeting + + + + + + + + + + + + +

Where We Are Now

+ +
+L10n projects can get real big attention from users. For volunteer projects of private people, +that may turn out to bring some problems with growing user interest. +On the other hand, especially as a private volunteer contributor, it can make you even more fond of that +project seeing the little baby of yours grow and grow. +
+ +
+

An Example: The Mozilla German Project

+
+In late 1999, working with M11, I discovered that XUL has nice text/code seperation, and tried to dig into it +by changing some strings to German equivalents - just for fun. Being the first one +to do this for that language, I stumbled into being the leader of the German L10n project and released +M12 German on 2000-01-01. +
A lot has happened since then. The small HTML page I made up for downloading that build turned into a +heavily accessed web site, now residing at +mozilla.kairo.at. +
In January 2004, that site was accessed by over 740000 different hosts, hitting the main page +just under one million times, the support page (default home page of German builds) had almost 800000 hits. +With 44000 visits of people per day (average), the site produced 20 GB of HTML traffic. +
As a student, I'd have some problems paying for the server that hosts all that alone, +and affording visiting FOSDEM as well on my cost would also be not too easy. I'd like to +thank all donators of the Mozilla German project for making it possible +to keep the site up and attend here, and my parents as well for supporting me to come here and spend some time +on Mozilla next to studying. +
The downloads are hosted by mozilla.org, universities and my student home, and I don't have reliable +download counters for those, so I can't tell any download numbers. From ftp.mozilla.org numbers alone, +it seems to be the most-used localization by far though. +
The German localization of Mozilla gets included in all CDs of the big German magazine PC-WELT, +the German XPI pack is on the mozilla.org 1.6 CD (AFAIK), SUSE LINUX does include German packs for Mozilla, +and probably it's shipped in various other ways as well. +
Two other contributors are shipping translated version of Firefox and Thunderbird based on that work, +and the German Mozilla newsgroup de.comm.software.mozilla has been split into a hierarchy of 4 newsgroups +because one group couldn't handle the traffic of currently 4000 postings a month. +
Recently, I've given an interview for a German SAP magazine, and an Austrian computer magazine asked +me for one as well. It's pretty astonishing... +
On the other hand, I'm spending some hours a week answering mails telling users that I'm just a +translator, and I can't do support, pointing them to FAQs and newsgroups. +
There are still other problems left in Mozilla itself that bug us L10n people... +
+
+ + + diff --git a/fosdem2004/l10ntalk_04.html b/fosdem2004/l10ntalk_04.html new file mode 100755 index 0000000..65c2257 --- /dev/null +++ b/fosdem2004/l10ntalk_04.html @@ -0,0 +1,59 @@ + + + + + + L10n talk - FOSDEM 2004 - Mozilla Meeting + + + + + + + + + + + + +

Current Problems In L10n Area (helpwanted!)

+ +
+
    +
  • no fallback mechanism: If people would try to use some non-fitting locale packs, they get + crashes and XML errors because we have no fallback if lookup for + a locale string fails somewhere (string or file not found). + See bug 71797.
  • +
  • XUL FastLoad problems: XUL FastLoad fails to update the strings + after a locale switch. There is a workaround in place (killing the FastLoad file), + which also fails sometimes, and was promised to be replaced by a fix for 1.1 final (!). + See bug 142623.
  • +
  • Hardcoded content: Yes, there's still some hardcoded un-localizable code in UI files left, + a big part of this is low-hanging fruit for contributors and blocks L10n severily sometimes. +
    All relevant bugs (should) have the "L12y" keyword set. + Query for All bugs with L12y keyword set + (50 bugs found as of Thu Feb 19 18:26:44 PST 2004, + 35 of them in [Seamonkey] Browser product, + 13 of them in [Seamonkey] MailNews product, + 1 of them ("Localize FE") in Firefox product, + 0 of them in Thunderbird product, + the other one is in PSM).
  • +
  • Ignorance: Still some programmers think "It works for me and my collegues, and so it's alright" - + and they forget about i18n issues or things like locale switching altogether. +
    I had to fix breakage of the locale switching pref panel four times from 2002-03-31 to 2002-08-26 - + the FastLoad workaround (see above) was the fith issue that broke it during that time span! + See CVS Log of the pref panel.
  • +
  • No stringbundles from non-privileged files: This started to hurt me when trying to make about:plugins + localizable (see bug 56863). + In fact, I had to give about:plugins full chrome privileges just to access stringbundles - this opened + a potential security issue though. + See bug 98298.
  • +
  • Content packs: We should investigate if we really need seperate packages for that content, + as the real idea never took off. Merging them back into normal localization content could ease a few things.
  • +
+This should be some points to start for contributors who want to help us, and an overview what's bugging us +most currently. I'm sure the list is not complete, but it's what came to my mind when writing the slides... +
+ + + diff --git a/fosdem2004/l10ntalk_end.html b/fosdem2004/l10ntalk_end.html new file mode 100755 index 0000000..29a4dc3 --- /dev/null +++ b/fosdem2004/l10ntalk_end.html @@ -0,0 +1,47 @@ + + + + + + L10n talk - FOSDEM 2004 - Mozilla Meeting + + + + + + + + + + + +

Open Discussion

+ +
+We now have some time for discussion. +
    +
  • Any open questions?
  • +
  • Any unmentioned issues?
  • +
  • Anyone wanting to help us?
  • +
  • Anything I forgot to mention?
  • +
+
+ +
+

Thank you

+
+ +Thanks for your attention. +Danke für Ihre Aufmerksamkeit. +Merci de votre attention. +Gracias por su atención. +Bedankt voor uw aandacht. +Tack för er uppmärksamhet. +Grazie per la sua attenzioneconfidenza. + +
+
+ + + diff --git a/fosdem2004/l10ntalk_glossary.html b/fosdem2004/l10ntalk_glossary.html new file mode 100755 index 0000000..735c0b8 --- /dev/null +++ b/fosdem2004/l10ntalk_glossary.html @@ -0,0 +1,31 @@ + + + + + + L10n talk - FOSDEM 2003 - Mozilla Meeting + + + + + + + + +

Common terms used in Mozilla L10n (glossary)

+ +
+A rough list of special terms that will be used here and/or are commonly used in the L10n area: +
    +
  • L10n: Localization (an "L", followed by 10 characters, then an "n"): Customizing Software for a specific local area (mainly translation)
  • +
  • i18n: Internationalization (an "i", followed by 18 characters, then an "n"): Making Software internationally useable (e.g. support input with Asian keyboards etc.)
  • +
  • L12y: Localizability (available as a bugzilla.mozilla.org keyword, added for bugs that block L10n of some feature)
  • +
  • locale: a set/package of locally customized items (e.g. a "language pack")
  • +
  • theme: In Mozilla terms, a theme is a set of CSS files and images (perhaps even some XBL), sometimes also called "skin"
  • +
  • XUL: "XML User interface Language" (pronounced "zool"), an XML dialect used by Mozilla to describe its UI (User Interface)
  • +
  • XPI: "X(cross)-Platform install": cross-platform file format for installation of projects within the Mozilla framework. The XPI file is a zip-format file that contains a JavaScript installation script (install.js)
  • +
  • JAR: This file type that originates from "Java Archive Resources" is a compressed format used for Mozilla's chrome. It's basically a zip format file, containing chrome files and RDF files that describe the content and can be fed into chrome registry (contents.rdf).
  • +
+Terms like XML, XML entity, DTD, URI, etc. should be known by most people attending this talk, I think... + + diff --git a/fosdem2004/l10ntalk_overview.html b/fosdem2004/l10ntalk_overview.html new file mode 100755 index 0000000..4f3617b --- /dev/null +++ b/fosdem2004/l10ntalk_overview.html @@ -0,0 +1,30 @@ + + + + + + L10n talk - FOSDEM 2004 - Mozilla Meeting + + + + + + + +

Overview/Contents: Localization (L10n) Talk

+ + + + + diff --git a/fosdem2004/minus.png b/fosdem2004/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..6e9499fd8cd39581028f4c5969be20cae0e6449c GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^+(693!3HF^taP6Tq*&4&eH|GXHuiJ>Nn{1`*^<27 zT^Rm@;DWu&Cj&(|3p^r=fw~R@@oPpt&BL8QLG}_)Usv`kOv2)3T)f*Si2;RVOI#yL zobz*YQ}ap~oQqNuOHxx5$}>wc6hbmm72G|21Ky{o<^dJzdAc};RNPAb^Z!3P^TvkG zMiv7PkNn{1`*^<27 zT^Rm@;DWu&Cj&(|3p^r=fw~R@@oPpt&BL8QLG}_)Usv`kOv2)(dQvl0S%5;aC9V-A z&iT2ysd*&~&PAz-C8;S2<(VZJ3LzP(3hti10q;{(^MDFHJzX3_DsCnJ`Tw7td1FIo zBTGZ5p|bLEw;-Qq%Wp{b81Or-ZJU{K;J|?b##8@({Qu8iFLE>^&+Y?|#r~?DZDrT} fhhG)0&ShjU=@nmko>w>vXefiHtDnm{r-UW|P-alC literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..022dbf0 --- /dev/null +++ b/index.html @@ -0,0 +1,39 @@ + + +
+
+
What's New
+
    +
  • Aug 24: Project started
  • +
+
+ + + +
+ + + +

This is the project @ mozdev.org.

+ +

The project contains some scripts and smaller OSS programs by me (Robert Kaiser, a.k.a. "KaiRo").

+ +

Most of those scripts and/or programs have some connection to +Mozilla, but I'll eventually also provide some software that +has no direct connection to my favourite browser.

+ +

For wishes and comments about the project and software please use Bugzilla, I'm already overburdened +with personal mail, so I perhaps won't get to answer that sooner or later, but I'll look at Bugzilla +often enough to work at open bug reports. +
See the "bugs" link in the navigation line above.

+ + -- 2.35.3