🔧 Maintenance Alert: World will be on Read-Only Mode on February 18th, 10:00 PM – 11:00 PM EST / 7:00 PM – 8:00 PM PST / 4:00 AM – 5:00 AM CET (Feb 19). Browsing available, but log-ins and submissions will be disabled.

Sergii Vorushylo
Jan 29, 2012
  5378
(6 votes)

Language files Visual Studio Extension for EPiServer

As you certainly know, EPiServer localization is based on XML files with a certain structure. Working with translations in code is not hard, but I believe it could be even easier with a small extension, that I am going to introduce to you. This is a Visual Studio 2010 extension that has three main functions:

  1. Show values of translation keys as a tool-tips.
  2. Navigate to a line in a language file containing the key.
  3. Copy to the clipboard an expression with path to the key selected in a language file.


In code editor all recognized translation keys are decorated with a thin border.  Tool-tips are shown if you hover a mouse pointer over a decorated translation key. Smart-tags used for navigation can be expanded with left mouse click or by pressing "Ctrl + ." key combination.

The extension can recognize two types of translation references: basic XPath “/admin/settings/heading” and resource binding <%$ Resources: EPiServer, admin.settings.heading %>. Relative paths like Translate(“#heading”) and filtering by attribute value expressions  like Translate(“/pagetypes/property[@name=’Description’]”) are not supported for now.

The extension can be installed from Extension Manager in Visual Studio 2010 (select Online gallery and type “EPiServer” in the search request) or alternatively it can be downloaded from this page.  The source code for the extension is available here.

This project was born during a series of hack-days that we have here in EPiServer development team and it is not an official EPiServer release. You are very welcome to leave feedback and suggestions here in comments or on extensions page. Bugs can be reported and tracked here.

Jan 29, 2012

Comments

valdis
valdis Jan 30, 2012 02:27 PM

cool!

Jan 30, 2012 03:35 PM

Very nice, I have knocked together this macro http://world.episerver.com/Blogs/Lee-Crowe/Dates/2011/6/Language-File-Population-Helper-VS-Macro-v11/ that makes populating the language file much less of a mundane task for large global site builds. It would be useful if you could extend the extension to allow you to select text and easily add it to the language file.

Hampus Persson
Hampus Persson Jan 30, 2012 03:55 PM

Very cool !

Jan 30, 2012 04:31 PM

Very neat!

Jan 30, 2012 04:42 PM

@Croweman I have plans to add something like this in the future

Jan 30, 2012 09:37 PM

Nice! Installed and works like a charm!

Feb 4, 2012 07:39 PM

Cool! Good job, I like!

morgan-henskjold.jensen@capgemini.com

Very nice, will help a lot. Thanks.

Arild Henrichsen
Arild Henrichsen Mar 6, 2012 03:48 PM

This is really a sweet extension!

Thomas Krantz
Thomas Krantz Aug 24, 2012 04:21 PM

Will you also upgrade this extension for Visual Studio 2012?

Aug 27, 2012 10:26 PM

@Thomas Yes, I have started working on the Visual Studio 2012 support.

Sep 2, 2012 10:21 PM

The extension was updated for Visual Studio 2012

Oct 26, 2012 02:17 PM

Like!

AndrewR
AndrewR May 7, 2014 09:36 AM

I have a new request / idea: The language doublesearch.
I quite often need to search like this:
Take some text from a user-provided screenshot, for example "Last ned:"
Search for this text to find the language key "/document/download".
Do a new search to find code that uses the language key.

I would like an extension that allows developers to enter a search text, and then get the language key, and a list of places where the key is used.
Any hopes for an extension upgrade to include this ?

But then maybe I'm the only one doing it this way.

Johan Book
Johan Book May 14, 2015 12:39 AM

Great tool! Need update for VS 2013

Please login to comment.
Latest blogs
The missing globe can finally be installed as a nuget package!

Do you feel like you're dying a little bit every time you need to click "Options" and then "View on Website"? Do you also miss the old "Globe" in...

Tomas Hensrud Gulla | Feb 14, 2025 | Syndicated blog

Cloudflare Edge Logs

Optimizely is introducing the ability to access Cloudflare's edge logs, which gives access to some information previously unavailable except throug...

Bob Davidson | Feb 14, 2025 | Syndicated blog

Comerce Connect calatog caching settings

A critical aspect of Commerce Connect is the caching mechanism for the product catalog, which enhances performance by reducing database load and...

K Khan | Feb 14, 2025

CMP DAM asset sync to Optimizely Graph self service

The CMP DAM integration in CMS introduced support for querying Optimizly Graph (EPiServer.Cms.WelcomeIntegration.Graph 2.0.0) for metadata such as...

Robert Svallin | Feb 13, 2025

PageCriteriaQueryService builder with Blazor and MudBlazor

This might be a stupid idea but my new years resolution was to do / test more stuff so here goes. This razor component allows users to build and...

Per Nergård (MVP) | Feb 10, 2025

Enhancing Optimizely CMS Multi-Site Architecture with Structured Isolation

The main challenge of building an Optimizely CMS website is to think about its multi site capabilities up front. Making adjustment after the fact c...

David Drouin-Prince | Feb 9, 2025 | Syndicated blog