Lingobit Extractor
Text stuck in the code? Move it into resources in one pass.
Before translation, run your C++, C#, Visual Basic .NET, Delphi, or Java code through Lingobit Extractor. It moves the strings into the resources your platform uses and puts the code that loads them in their place. Then Lingobit Localizer translates your build.
- Source code
- C and C++, C#, Visual Basic .NET, Delphi, Java
- Resources
- RC string tables, RESX, Delphi resourcestring units, Java .properties
- Then
- Lingobit Localizer translates your build
- Trial
- 30 days, a separate download
On this page
Pseudo Translate shows text that stays in English.
Before translation you check the application with Pseudo Translate in Lingobit Localizer, and one text does not change: it is written in the code, not in the resources, so no translation can reach it.
Moving such strings into resources by hand is long and dull, and it never ends: each new message during development is one more.
Pseudo Translate: Professional and higher.
Lingobit Extractor moves it into resources.
Pick your language: Extractor writes the resources your platform already uses, with an ID made from the words of the string, and puts the code that loads it in place of the text.
C and C++
The string goes into a separate .rc2 file, and the code loads it with _LS, _LSW, or _LSA. Files .c, .cpp, .h, and .hpp.
C# and Visual Basic .NET
The string goes into a .resx file. C# reads it from the strongly typed resource class, Visual Basic .NET from My.Resources. Generated files such as *.Designer.cs and AssemblyInfo are left alone.
Delphi
The string goes into the resourcestring section of a unit, and the code uses its name. Files .pas, .dpr, and .p.
Java
The string goes into a .properties file, and the code reads it with a getString method, a generated wrapper class, or ResourceBundle. Files .java.
Extractor also reads XAML, with bindings to a resource wrapper class, and ASP.NET pages, with resource expressions.
How to work with Extractor.
Not every string is text: a window class name, an SQL query, or a registry key has to stay in the code. You decide what moves.
Add the codeSource files or a whole folder. Generated files such as *.Designer.cs are left alone.
ScanExtractor lists the string literals. Filters drop strings without letters and strings that match your patterns.
Skip or ExtractSkip the technical strings and extract the rest. Use Existing Resource String gives repeated text the resource that is already there.
BuildInclude the resources (C++: the .rc2 and ResString.h; .NET: save the .resx in Visual Studio) and build. Lingobit Localizer translates the build, not the .rc or .resx file; for Java, the .properties files or the JAR.
Scan againWhen the code changes, only the new strings show up; what you skipped stays skipped.
Check again: now it comes from the resources.
Pseudo Translate once more: the status text is pseudo-translated with the rest. Then create the localized files and run the application in the pseudo-language: it should work exactly as the original.
If the translated application fails, Crash Finder finds why.
A translation can break the program: a format string that lost its placeholder, or a string longer than the buffer the code reserved. Crash Finder builds test versions with part of the translations, you answer whether each one failed, and every answer halves the suspects.
Enterprise
Try it on your own code.
The Extractor trial runs for 30 days with every function. In each resource file the first 50 extracted strings are written as they are; after that, some may end in _TRIAL.
What Extractor does and does not promise.
Extractor changes your source code; the development team stays responsible for it.
What Extractor helps with
- Finding string literals in source files and folders
- Moving them into RC, RESX, Delphi, or Java resources
- IDs made from the text, and the code that loads them
- Filters, Skip, and the next Scan
What remains project-side
- Reviewing which strings to extract
- Including the resources in the build
- Loading resources and switching languages at run time
- Building and testing the application
Related
- Localization preparationLock technical strings and test the application in a pseudo-language before translation.
- Localization QAValidation and Crash Finder for the translated application.
- PricingExtractor and Extractor Multi-User licenses.
Hard-coded strings? Move them into resources.
Run your code through Extractor before translation, build, and translate the build with Lingobit Localizer.