diff --git a/context/common-topics.md b/context/common-topics.md index bab2f13..374fa01 100644 --- a/context/common-topics.md +++ b/context/common-topics.md @@ -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 | diff --git a/context/media/test-engine-localized-app-testing.png b/context/media/test-engine-localized-app-testing.png new file mode 100644 index 0000000..efc3753 Binary files /dev/null and b/context/media/test-engine-localized-app-testing.png differ diff --git a/context/testing-localized-power-app.md b/context/testing-localized-power-app.md new file mode 100644 index 0000000..5e10f09 --- /dev/null +++ b/context/testing-localized-power-app.md @@ -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.