Orchard translation of custom modules and texts - asp.net

I almost finished two Orchard projects and now I want to focus on translation.
Everywhere I used the Helper class T("") like T("Some english text").
Is there a Orchard 1.8 compatible module that lists all of my translation entries in the Admin menu and lets me create a new translation for it?
Or maybe any helper that lists the translations and writes it into a file?

There is a module Translation Manager (part of Vandelay Industries module in gallery) that can extract strings from source code and generate .po files.
Docs: Contributing files for third party modules
Contributing files for third party modules
... you can generate po files for it
using the Translation Manager module.
From an Orchard command line, type the following command (for the
example of the Bing.Maps module):
extract default translation /Extensions:Bing.Maps /Output:\temp
This will create a new Orchard.en-us.po.zip file with the strings for
the module. The command looks at the source code for the module and
creates entries for T-wrapped strings, manifest strings and everything
that should be localizable.

Related

How to add a prerequisite

Am trying to add another morea course as a prerequisite.
I have created a markdownfile prerequisite.md but do not know where to put it.
The online user guide states you can add a prerequisite but does not explain what to name the .md file or where to locate.
Prerequisites are at the module level - a module references another module. In short: you create a prerequisite file and reference it in the referencing module header.
See the bar folder of the example site, which references the other foo module:
module.md:
morea_prerequisites:
- prerequisite-foo
prerequisite-foo.md:
morea_id: prerequisite-foo
morea_type: prerequisite
See also the documentation example.

How to use bootstrap configurator along with GWTbootstrap3 (i.e. what is bootstrap.min.cache, and how is it generated?)

you can use the bootstrap configurator (http://getbootstrap.com/customize/) to configure your own bootstrap version (e.g. set the variables like #grid-float-breakpoint to configure the navbar collapse point). I want to use this feature within my project which is based on gwt using https://github.com/gwtbootstrap3/gwtbootstrap3based.
I managed to create my download my configured bootstrap.zip using the method above.
The zip contains (as expected):
\bootstrap\js
\bootstrap\css
\bootstrap\fonts
just as GWTBootstrap3 project
gwtbootstrap3-0.9.3\org\gwtbootstrap3\client\resource\js
gwtbootstrap3-0.9.3\org\gwtbootstrap3\client\resource\css
gwtbootstrap3-0.9.3\org\gwtbootstrap3\client\resource\fonts
So I tried to replace the bootstrap files out of css with the genereated bootstrap files.
But then I recognized that in the GWTBootstrap3 project there are files named *.cache.min.
How / when are these files generated? This is explained already here: GWT Caching Concept
So obviously we want to replace the bootstrap files to remain "cache"d.
Can you please forward me a step-by-step description of how to use bootstrap configurator along with the current GWTBootstrap3 project , i.e. what files need to be replaced?
What I already tried (with no success):
0.) Create a bootstrap.zip with the online configurator and download it
1.) Rename gwtbootstrap3-0.9.3.jar to gwtbootstrap3-0.9.3.zip
2.) Extract
3.) Replace bootstrap-3.3.6.min.cache.css with bootstrap.min.css (from the configurator) and replacing meaning the bootstrap.min.css is renamed to bootstrap-3.3.6.min.cache.css
4.) Put all files from bootstrap.zip into the respective directory and renaming it accordingly as explained in 3.) to effectively replacing the original file
5.) zip and rename it again to gwtbootstrap3-0.9.3.jar
6.) replace the lib in my project
But after doing so I continuously get the compiler errors:
Package org.gwtbootstrap3.client.ui cannot be found.
Any help greatly appreciated
Best regards
Hannes
I can provide an answer which should work for most of the configuration changes. First of all I had to learn that renaming gwtbootstrap3-0.9.3.jar to gwtbootstrap3-0.9.3.zip then unzip, rezip and rename to jar does NOT WORK!!!
So here is a step by step tutorial of how to configure your bootstrap and use it with gwtbootstrap3.0.9.3 . I am not sure this will work for future editions but it should work for bootstrap3.
Configure and download your new bootstrap
https://github.com/gwtbootstrap3/gwtbootstrap3based.
Unzip your new bootstrap, this will provide the subdirectories css,
fonts and js. So you will have something like bootstrap/css etc.
Now copy your "old" gwtboostrap3.0.9.3 jar to the base directory, so
that the bootstrap.zip and the jar lie in the same directory.
From the commandline issue jar xf gwtbootstrap3.0.9.3.jar which will
create the 2 directories META-INF and org in your directory
Move into org\gwtbootstrap3\client\resource\css
Copy the FILENAME (not the file!!!). In my gwtbootstrap version the
file is called "bootstrap-3.3.6.min.cache.css".
Rename the file bootstrap/css/bootstrap.min.css to
bootstrap/css/bootstrap-3.3.6.min.cache.css and REPLACE
org\gwtbootstrap3\client\resource\css\bootstrap-3.3.6.min.cache.css
with bootstrap/css/bootstrap-3.3.6.min.cache.css
Rename the file bootstrap\css\boostrap-theme.min.css to
boostrap\css\bootstrap-theme-3.3.6.min.cache.css and REPLACE
org\gwtbootstrap3\client\resource\css\bootstrap-theme-3.3.6.min.cache.css
with bootstrap\css\bootstrap-theme-3.3.6.min.cache.css
I left out the fonts directory because my changes did not change
anything with the fonts
Rename bootstrap\js\bootstrap.min.js to
bootstrap\js\bootstrap-3.3.6.min.cache.js and REPLACE
org\gwtbootstrap3\client\resource\js\bootstrap-3.3.6.min.cache.js
with bootstrap\js\bootstrap-3.3.6.min.cache.js
In the basedirectory (where the bootstrap directory lies) issue from
the commandline: "jar xf gwtbootstrap3.0.9.3.jar META-INF org". This
should produce your new gwtbootstrap3.0.9.3.jar lib
In your project replace the old gwtbootstrap3.0.9.3.jar with the new
lib.
In case you get lots of java errors telling you it cannot find the classes you mixed up the paths. Please let me know if this worked out for your. Perhaps someone can provide a shellscript to automate the whole process.
One tip: Customizing your bootstrap gives you more control, e.g. for handling the point at which the navbar becomes uncollapsed (at the configuration page look for the key called "#grid-float-breakpoint"). Don't forget to enter a value suitable for you (mine was 800px). Don't forget to add px at the end!!

Flex : Create new folder in zip file

I am using Flex, Flash Builder 4.5 and Extension Builder 2.0.0 and I use the "nochump ziplib" library to generate a ZIP file. I want to create a new folder in created ZIP file, but I can't find such function function in the "nochump" library.
Can anyone please tell me if there is any function to add new folder in a ZIP file or a library which can help me do this?
The directories are not first-class citizens in the ZIP format.
The archive is built from "entries" - plain files with their relative locations to the "central directory" (the "root" of the archive). This means that the ZIP file is composed from entries like "pictures/1.jpg", "doc/old/1.txt" etc. You don't have separate entries for the "pictures", "doc" or "doc/old" directories.
You can't create a new directory directly. Instead of creating a new directory first (such as "newDir") you may want to create a file (entry) inside instead (such as "newDir/1.txt") and "newDir" will appear as directory when you open the resulting ZIP file.
If you insist on having an empty directory in the archive, you may try the hacky way - adding entries like "newDir/." with zero length. But this may not work with your library.
The Wikipedia article for the ZIP format has all the theory explained pretty well.

What is the purpose of files[] in .info?

I've just started learning discovering the changes to Drupal 7, and I just found the files[] array now required in the mymodule.info. From what I've found, it is required to add the mymodule.module file to the list, but what other uses does it have?
From what I've read I figured I should be able to separate my code into several files, for example I wanted to make a mymodule.blocks.inc to contain all the code for my blocks, but it seems like the mymodule_block_info() function never runs.
Am I doing something wrong, or is this not how it is supposed to be used?
As the documentation says:
files (Optional) Drupal now supports a dynamic-loading code registry.
To support it, all modules must now declare any code files containing class or interface declarations in the .info file.
This is only used if the file you specify in files[] contains a class or an interface. If so, the file will be auto-loaded only when needed.
No other files should be declared using files[].
At the beginning it was to make a files registry for each module, but it's not longer used as Drupal do it by himself.
If you want separate your module in multiple files, you should include them in the top of your .module file.
The way I see it, files specified as files[] are meant to be supporting files and called upon when needed. Implemented default Drupal hooks should be specified in the .module file or in the $module.$group.inc file in order for Drupal to recognize them. See hook_hook_info().
Also, see the note in the documentation under files at http://drupal.org/node/542202.

Module translations import manually or when module activation?

I've created a simple module and needed to add some translations messages.
Next step was to create a "translations" folder with a po file named "pt-pt.po" inside (my language defined is pt-pt) and programmatically didn't worry to import those messages.
I thought that those messages were imported when module activation but that didn't happen.
I thought wrongly? :) Or what I'm missing?
I have to import manually per-environment?
Thanks.
Does the pt-pt.po file contain strings (I don't understand from that programmatically part)? If not, you'll need something like this http://drupal.org/project/potx to extract the strings from your module.
If the translation file has strings but those were not imported keep in mind that the translations are read and imported only when a module is installed, not activated. So if the module was activated after it was deactivated at some point then the translations will not be re-read.
In this case this could solve the issue: http://drupal.org/project/po_re_importer.

Resources