Rick Strahl's Weblog
Wind, waves, code and everything in between...
- Rest Client and Http Load Testing for Windows
WebLog Posts in Category Localization
June, 2022 (2)
April, 2022 (2)
March, 2022 (2)
February, 2022 (2)
January, 2022 (2)
December, 2021 (1)
November, 2021 (3)
October, 2021 (1)
September, 2021 (1)
August, 2021 (2)
July, 2021 (2)
June, 2021 (2)
May, 2021 (3)
ASP.NET Core (56)
Visual Studio (54)
.NET Core (19)
Web Services (19)
Web Api (16)
Sql Server (10)
Microsoft AJAX (8)
Web Connection (7)
West Wind Ajax Toolkit (7)
Entity Framework (6)
Internet Explorer (6)
Html Help Builder (5)
Markdown Monster (5)
Live Writer (5)
Software Development (5)
Source Control (4)
Help Builder (3)
Web Browser Control (3)
Visual Studio Code (2)
Web Development (2)
ASP.NET vNext (2)
.NET Standard (2)
Visual Studio (1)
ASP.NET Markdown (1)
Control Development (1)
Credit Card Processing (1)
Dynamic Types (1)
CSharp Dotnet (1)
WPF Windows (1)
Web Assembly (1)
Web Deployment Projects (1)
Web Design (1)
WebView2 WPF (1)
VS Code (1)
Dev Intersection 2017 Session Slides and Samples Posted
November 08, 2017 - Maui, Hawaii
I've posted my Session Slides and code samples from last week's DevIntersection conference on GitHub.
Using Westwind.Globalization to edit loose RESX Files
May 18, 2016 - Maui, HI
Although Westwind.Globalization is primarily aimed at Web applications, you can also use it to edit arbitrary RESX files using the Localization Administration interface that comes with the library. In this post I show how you can import RESX resources, then use the editor to manipulate RESX resources interactively, and then export the resources back out, using a local Web application on your machine.
Rebooting Database Localization for ASP.NET with West Wind Globalization 2.0
June 23, 2015 - Hood River, OR
I'm happy to announce the release of Westwind.Globalization version 2.0 - a database resource localization library for ASP.NET. Version 2 is a major upgrade that includes many new features including support for new database providers, a brand new Web Resource Editor, much improved ASP.NET MVC support, vastly better support for importing and exporting Resx resources, creating of strongly typed classes and much more. There's also a new video that describes features and provides a getting started guide with some detailed background. In this post I review some of the new features and point at additional resources for more information.
Interactive ASP.NET Resource Linking and Editing with Westwind.Globalization
May 27, 2015 - Hood River, OR
Resource linking for resource editing is a very useful feature when localizing application, making it easy to jump back and forth between content and the resources that need to be edited. Seeing resource content in context is vital to good application localization. Westwind.Globalization provides a simple HTML based resource linking mechanism and in this post I describe how it works, and how it's implemented in the Westwind.Globalization library.
Right To Left (RTL) Text Display in Angular and ASP.NET
May 23, 2015 - Hood River, OR
Recently I was gently asked to add support for RTL language editing in my Westwind.Globalization library and the Web Resource Editor. The Editor supports displaying resources in all of its localized version, but it didn't respect the RTL setting for languages that required it. In this post I describe how RTL support works in browsers, how you can detect RTL support on a locale in .NET and demonstrate how I integrated basic RTL edit and display support for the Resource Editor using a custom Angular directive.
Bitmap types, Binary Resources and Westwind.Globalization
March 27, 2015 - Maui, HI
I've been working on supporting binary resource imports via the Web interface using Westwind.Globalization and I'm debating on whether supporting the .NET convention of importing image resources as Bitmaps is prudent. Bitmaps are rather unwieldy to use and are painful to export to common stream or file formats due to the funky 30 year old encoding architecture used by GDI+. In this post I talk about some of the issues I've run into with Bitmaps and why I'm considering importing resources simple as raw byte data.
ASP.NET MVC, Localization and Westwind.Globalization for Db Resources
March 17, 2015 - Maui, HI
Recently I've been getting a number of questions related to customers having issues with running the Westwind.Globalization Database Resource provider library under ASP.NET MVC. While the original versions of this library were definitely WebForms centric since it originated in the WebForms era, the library has had full support for ASP.NET MVC for a while. In this post I'll review how localization works in ASP.NET MVC and then demonstrate how Westwind.Globalization handles the same scenarios with database resources.
Back to Basics: UTC and TimeZones in .NET Web Apps
February 10, 2015 - Maui, HI
Storing dates in persistent storage using UTC dates is a widely accepted best practice. But it's surprisingly complex using date data effectively if you want to let the user see dates and query data in their local time zone. Looking around I noticed that there's not a lot of comprehensive info on this topic, so I decided to take notes and write down some of the approaches I've used in this post. This post combines and overview and a number of helper routines specifically geared towards user timezone adjustments in typical ASP.NET Web applications.
Updated ASP.NET Database Resource Provider
March 31, 2014 - Maui, HI
I've updated my database ASP.NET Resource Provider project into a more formal project with a new home page, and official GitHub repository for the source code as well as a getting started video. In this video I talk about what's new and a few examples on how to use the provider.
Auto Selecting Cultures for Localization in ASP.NET
March 27, 2014 - Maui, HI
When creating multi-language Web sites, one of the key issues you need to deal with is how to assign a culture to display the appropriate resources. Whether you need to auto-switch locales based on browser language, or explicitly assign a locale based on user preferences there is generally some code logic involved in making these decisions. In this post I show what options are available and a small helper that simplifies setting the culture in ASP.NET applications.
Setting up and using Bing Translate API Service for Machine Translation
June 06, 2013 - Hood River, Oregon
Public translation APIs as a Web Service are great for doing machine translation within applications or casual translation for user input in many applications. With Google recently removing Google Translate API I've been looking at alternatives and so wanted to hook up to the still supported Bing Translate API. Unfortunately the signup process for the Translate API is terrible, although using the service is easy enough once signed up. In this post I discuss step by step how to sign up and how to use the Translate API.
WPF Localization Guidance Paper Posted on CodePlex
July 01, 2009 - Hood River, Oregon
I’m happy to announce that my WPF Localization paper went live a couple of days ago on CodePlex. This document provides an overview of localization in .NET in general as well as specifically to WPF. It covers localization with the rigid LocBaml approach, as well as using Resx resources for binding using markup extensions and attached properties respectively.
WPF Bindings and CurrentCulture Formatting
June 14, 2009 - Hood River, Oregon
WPF doesn't apply the CurrentCulture to bindings by default, which is a little... unexpected to say the least. As it turns out there's an easy solution to this problem, but it does require using code to apply the culture specifically in every document.
Resx and BAML Resources in WPF
June 04, 2009 - Maui, Hawaii
Resource loading in WPF applications that mix BAML and Resx resources can be very confusing as BAML resources require that all BAML resources are stored in external satellite assemblies.
April 02, 2009 - Maui, Hawaii
Updated Westwind.Globalization Data Driven Resource Provider for ASP.NET
April 01, 2009 - Maui, Hawaii
Updated Data Driven ASP.NET Resource Provider Posted
March 11, 2008 - Maui, Hawaii
I've update the source and samples for the wwDbResourceProvider component which provides an ASP.NET Resource Provider that is driven from resources stored in a SQL Server database. The tool also includes a real time ASP.NET resource editing front end and the abillity to import and export resources. This update fixes a few small bugs and enhances the ASP.NET resource editing front end with a few UI and AJAX tweaks.
XmlWriter and Schema
August 09, 2007 - Hood River, Oregon
In the ResX exporter for my data driven Resource Provider I use a bit of code that iterates over the database resources and then spits out ResX resources from the data as an option to get your resources into your Web site. The code I've used in this stretch of code uses an XmlWriter to quickly spit...
Resource Unloading in a custom ASP.NET Localization Resource Provider
July 24, 2007 - Hood River, Oregon
In ASP.NET 2.0 ResourceProviders allow extension of the native resource mechanism with your own resource backing store by implementing a custom ResourceProvider. It's fairly easy to create a new provider but figuring out how to unload resources with a dynamic resource store like a database is not quite straightforward. Here's how...
Creating a data driven ASP.NET Resource Provider and Editor Article posted
July 18, 2007 - Hood River, Oregon
I finally managed to write up my data driven resource provider as an article. It ended up being quite a task getting it all to fit into an article and I actually ended up with TWO freaking articles - one an introduction and one for the resource provider and editor implementation. <s> Yeah,...
Generate Local Resources forces Culture="Auto" into Page
July 14, 2007 - Hood River, Oregon
Here's a real annoyance in Visual Studio's Generate Local Resources feature: When you generate local resources within the IDE ASP.NET will automatically add Culture="Auto" and UICulture="Auto" to the page header. While this may seem Ok at first this is really, really lame if you are managing...
Finding Child Item Controls in ASP.NET
June 26, 2007 - Hood River, Oregon
I was mucking around with some old control code today where I have a control that has an array of child items. While making some modifications I realized that I really wanted to make some of these controls available as child controls. But alas it turns that ASP.NET is not readily firing any 'add'...
Global Resources Localization Suggestion for ASP.NET
June 24, 2007 - Hood River, Oregon
ASP.NET provides the ability to use strongly typed resources for Global resources that are contained in App_GlobalResources. This is a nice feature, but it has a pretty major flaw as it's implemented right now. The way this works is that you have your Resx file in App_GlobalResources and...
Speaking at PADNUG on Wednesday: Data Driven Localization
June 21, 2007 - Hood River, Oregon
I'll be speaking at the Portland Area .NET User Group next Wednesday. The topic is: A Data Driven Approach to Localization with ASP.NET This session provides an introduction to localization with ASP.NET as well as demonstrating how to extend ASP.NET with a custom data driven ResourceProvider. The...
Strongly typed Resources in ASP.NET
November 22, 2006 - Maui, Hawaii
If you’ve used WinForms application you might envy the fact that there you get strongly typed resources automatically for your RESX files – the Compiler automatically generates a class that contains each of the resources as a property of the class. Unfortunately this feature isn't available in ASP.NET. Here's why and a utility that can create you strongly typed resources that work.
ResourceProvider Localization Sample posted
November 05, 2006 - Maui, Hawaii
I’ve been talking for some time about about a localization provider I’ve been working on off and on for my session at ASP.NET Connections next week. I was finally able to post a small sample of what the provider does and what the admin interface looks like as part of my wwHoverPanel AJAX samples. The sample shows resource serving and resource editing in action.
October 31, 2006 - Maui, Hawaii
I'm finally getting to the point of actually using my localization provider and localizing a couple of applications, which as we all know is tedious as heck. Here are a few thoughts in how to deal with literal values placed into the ASP.NET page markup, especially in relation to creating script code literals.
Strongly typed resources in ASP.NET
October 31, 2006 - Maui, Hawaii
So I was screwing around today with strongly typed resources in ASP.NET. Another cool side-effect of using Web Application Projects as opposed to stock ASP.NET projects is that WAP uses strongly typed global resources. If you create a global resource file, WAP automatically creates a strongly typed...
Auto-Culture detection related issues in ASP.NET
October 30, 2006 - Maui, Hawaii
I've been mostly playing around with new Auto-Culture switching in ASP.NET 2.0 and it seems that there are a coulpe of issues I've run into that I can't seem to work around using this mechanism. I’ve posted about ways to switch cultures in code previously and that’s been working fine, but...
ResoureProvider, ResourceManagers Relationships in ASP.NET 2.0
October 12, 2006 - Maui, Hawaii
I’ve been chomping away at my custom resource provider/manager and I have most of this working nicely with the ability to dynamically update resource content which was the original goal of this whole process. But even as all of this is coming together I still feel a bit lost on the high...
Trying to implement IImplicitResourceProvider
October 06, 2006 - Maui, Hawaii
I'm still trying to implement a custom Localization provider and while I've made the base functionality work fairly easily I'm stuck on the IImplicitResourceProvider interface not being quite sure where it needs to go and what it EXACTLY needs to do. I have it firing but it's not working correctly...
Custom Localization ResourceProviders and Compiler Errors
October 04, 2006 - Maui, Hawaii
I’ve been struggling with building a custom ResourceManager and hooking it into ASP.NET over the last few days as part of a localization engine that is data driven rather than through Resources. I’ve had a separate engine for this for sometime, but it hasn’t been hooked into the .NET or ASP.NET...