Skip to content

Commit

Permalink
Adding context article on testing localized apps
Browse files Browse the repository at this point in the history
  • Loading branch information
Grant-Archibald-MS committed Dec 12, 2024
1 parent e21288d commit abdb915
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 1 deletion.
3 changes: 2 additions & 1 deletion context/common-topics.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,9 @@ This page contains sets of related topics that enable you to quickly relate topi
| [Debugging Test Engine Tests](./debugging-test-engine-test.md) | Follow this guide on how to effectively debug your tests using a local build from source strategy |
| [Keeping up to date](./keeping-up-to-date.md) | Staying current with the latest features and updates in the Power Apps Test Engine allows you to leverage new capabilities and ensuring optimal performance. Here's how you can keep up to date based on the version of test engine you are using. |
| [Deep Dive: Test Engine Layers](./deep-dive-testengine-layers.md) | This article is designed to walk through the different layers of how test engine tests are implemented and understand the key interactions between the layers |
| [Testing Localized Power Apps](./testing-localized-power-app.md) | This article discusses the testing of localized Power Apps |

### Discussion Ariticles
### Discussion Articles


| Article | Notes | Feedback |
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 62 additions & 0 deletions context/testing-localized-power-app.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Testing Localized Power Apps

Localization is an important aspect of software development that ensures applications are accessible and user-friendly for people from different linguistic and cultural backgrounds. Despite its importance, localization is often seen as a challenging task and is sometimes deprioritized. This post explores the significance of localization, the common hurdles faced, and how to effectively test localized Power Apps.

## The Importance of Localization

Localization goes beyond mere translation. It involves adapting the content, layout, and functionality of an application to meet the cultural and linguistic needs of users in different regions. Proper localization can significantly enhance user experience, increase market reach, and improve customer satisfaction.

## Challenges in Implementing Localization

### Perception of Difficulty

Many developers perceive localization as a complex and time-consuming process. This perception often leads to it being overlooked or considered a lower priority, despite the clear benefits it can offer.

### Manual Testing and Support

Manual testing and support for multiple languages can be seen as a major blocker to adopting localization. Ensuring that an application works seamlessly across different languages and cultural settings requires meticulous testing and ongoing support.

## Automating Localization Testing in Power Apps

{% include figure popup=true image_path="/context/media/test-engine-localized-app-testing.png" alt="Overview diagram of localization process to testing power app" %}

### Sample Power App with Automated Tests

As part of the technical learning track we have added a [Localization Module](../learning/11-localization.md). This module demonstrates with a sample Power App that includes automated tests for localization. Using this sample could help you also build automated tests can help streamline the process, reduce errors, and ensure consistent quality across different languages.

### Cultural Settings and Power Fx / Playwright

Given Test Engine builds on Power Fx and Playwright it allows us abstract the complexity if starting up and dealing with the differences between different localized versions of the application.

### Using the Language() Function in Power Fx

The `Language()` function in Power Fx is a powerful tool that supports the Test Engine in launching user profiles in different languages. This function allows developers to easily evaluate whether their app works as expected in various linguistic contexts.

## Leveraging Localization Across the Organization

### Reusing and Personalizing Solutions

Localization efforts can be leveraged across the organization to create reusable and personalized solutions. By developing a centralized repository of localized resources and best practices, teams can save time and ensure consistency in their localization efforts. This approach also allows for the personalization of solutions to meet the specific needs of different user groups.

## Additional Considerations

### Continuous Integration and Deployment (CI/CD)

Integrating localization testing into your CI/CD pipeline can help ensure that localization issues are caught early in the development process. This approach can save time and resources in the long run and give you a set of automated quality checks to validate that localization continues to be applied as expected as the solution evolves.

### User Feedback and Iteration

Collecting feedback from users in different regions can provide valuable insights into how well your localization efforts are working. Iterating based on this feedback can help you continuously improve the localized versions of your app.

## Further Reading

- [Learning Module - Power Apps Testing Localization](../learning/11-localization.md)
- [Microsoft Dataverse language collation](https://learn.microsoft.com/power-platform/admin/language-collations)
- [Regional and language options for your environment](https://learn.microsoft.com/power-platform/admin/enable-languages)
- [Build a multi-language app](https://learn.microsoft.com/power-apps/maker/canvas-apps/multi-language-apps)
- [Language()](https://learn.microsoft.com/power-platform/power-fx/reference/function-language) to determine current test language
- [Playwright Locale](https://playwright.dev/docs/emulation#locale--timezone) Test Engine encapsulates the playwright locale settings for different user locale

## Summary

Localization is an essential component of creating inclusive and user-friendly applications. While it presents certain challenges, such as the perception of difficulty and the need for extensive manual testing, these can be mitigated through automated testing and a strategic approach to localization. By leveraging features of Test Engine and the frameworks like Power Fx and the `Language()` function, makers and developers can create robust, localized Power Apps that meet the needs of users worldwide. Additionally, organizations can benefit from reusing and personalizing localization solutions, integrating localization into CI/CD pipelines, and continuously iterating based on user feedback.

0 comments on commit abdb915

Please sign in to comment.