This library has been named ng2-translate as an obvious reference to angular-translate (for Angular 1), but it is now growing as an independent project with new features.
Also Angular 2 is now called Angular (with Angular 1 being AngularJS), so the name ng2 is gonna be obsolete soon.
Which is why this library needs a new name. I've secured the npm username i18n, and I would like to release future versions on npm under @i18n/... (for example @i18n/core), so I'm thinking about renaming this angular-i18n or something like that, but I'm opened to other ideas (preferably with i18n in the name, but not necessary).
Why distribute this under a namespace on npm? Because I'd like to release new optional addons (new loaders, tools, ...) and I want everything under the same namespace (so that I can name these new libs the way I want).
Also this is following the @angular philosophy.
Do you guys have ideas or remarks on the subject ?
For npm, @i18n/ng-translate.
If I may make a remark though, I don't feel like it's a good idea to claim @i18n though. Reminds me of the standard package (don't even get me started!).
So, maybe @ng-translate/core?
Agree with @Meligy on the name of @i18n, maybe @ng-i18n/core instead?
Ahah yeah, maybe i18n is a bad idea.
That being said I might one day make this library in vanilla js with addons for different frameworks (I'm not doing that for now, but that's a possibility).
@ng-translate is out of the question because it's too much like angular-translate.
@ng-i18n is a better idea yes.
I'd agree with the sentiments re using the plain i18n name.
To make the name generic (not coupled to Angular) there are only a few obvious terms - "i18n", "translate" etc. - BUT another approach could be to come up with a related-yet-distinct name, like what Babel did when renaming from "6to5". Plenty of well-known libs have names with no direct reference to the task they perform - moment.js, reveal.js for example.
As a side note: remember this: https://github.com/michaelbromley/ng2-pagination/issues/9 ? ;)
Dropping ng-polyglot there (Something related to the Rosetta Stone would be even cooler 馃槃 )
Yeah :D
I'm all for a distinct name (like babel - which would be a cool name for this lib by the way), but I haven't been able to find one that I like... naming things is the one of the hardest thing to do :)
What about t7e ? i18n means internationalization with 18 the number of letters between i and n in this word (and l10n is the same thing for localization), t7e would be translate, with 7 the number of letters between t and e in the word translate.
It's short, good for a namespace on npm and for imports, and it's original (there is no other library by that name)
my bad, there is a library by that name, and it's about translations :D https://www.npmjs.com/package/t7e
damn it !
@ocombe how about angular-locale
@ocombe what about something composed with 'Rosetta' ?
angular-multilingual ?
EDIT: I just saw that @orgbx proposed the same idea, something with polyglot could be cool too.
Or translate translate to some other language and maybe you come up with a cool name :).
Trad (short fort traduction = translation in french)?
Yeah, looks good for me!
I actually did that translate translate to all languages yesterday :)
How about transangular (for tranlate angular with a "transatlantic" connotation but has a bit of that expertsexchange issue 馃槤)?
There seems to be a library dot js for every frigging word I think of!
Let's make a little summary of the propositions that I like so far (namespace: lib name - module name):
@i18n/core: i18n [for Angular] - i18nModule@t7e/core: Translate - TranslateModule@???/core (@trad is taken): Trad - TradModule@polyglot/core: Polyglot - PolyglotModuleMy favorite so far are the two first
Your library is more a multilingual system than a "translate" system, so it look obvious that the most logical names in your selection are 'polyglot' and 'i18n'.
That would make more sense in my opinion.
How about "lingua" ? You'd get to be able to use it as the namespace later then too. (gentle highlight on the 'ng')
cref. wikitionary
Hey good idea, I like it :)
lingua++
So after a few weeks and 3 twitter polls, I've decided that the new name will either be ngx-i18n or ngx-translate.
Before we choose we need to think about how it will affect the directives / pipes as well.
With ngx-i18n the directive and pipe will be ngxI18n. I won't use i18n alone because of the official i18n directive. Also it's a pretty common name and that might cause problems. It's nice because it's short, but I really don't like how it comes out in camel-case, the i is hard to differenciate from the letter L...
With ngx-translate I can either change them to ngxTranslate or keep using the current translate. It's a bit more text to write, but it's closer (or similar) to the actual implementation, and it's easier to writer/remember I think. ngxTranslate might be a better choice in the end, because translate is an official (experimental) HTML5 attribute, and it's a problem if you want to use it along with this library. Also it causes issues with protractor because protractor expects a boolean value.
Any preference?
For me personally, ngx-translate is the best choice.
ngxTranslate should work just fine.
ngx-translate I'd say. Altho I don't dislike ngx-i18n as well 馃檪
ngx-translate... numbers are more difficult to type...
Man, I'm glad I found this thread :) I just spent about half an hour on Google trying to work out what the difference was between ng2-translate and ngx-translate.
In my defense, it's been a long day :)
I guess this kind of thing is becoming more common in libraries now with AngularJS -> Angular 2 -> Angular.
@pinpointpanda Yes, here are the official branding guidelines: https://angular.io/presskit.html
Most helpful comment
For me personally,
ngx-translateis the best choice.