IceFire Presentation for Aos Canada tour

28
Languages, Office 365, and PointFire 365 MARTIN LAPLANTE CEO, ICEFIRE STUDIOS, CANADA

Transcript of IceFire Presentation for Aos Canada tour

Page 1: IceFire Presentation for Aos Canada tour

Languages, Office 365, and PointFire 365

MARTIN LAPLANTECEO, ICEFIRE STUDIOS, CANADA

Page 2: IceFire Presentation for Aos Canada tour

SUMMARY

• Historical background• Language & MUI in SharePoint 2016 & O365• User Language Settings• PointFire on-prem and PointFire 365• Brief Demo• Machine Translation & other topics if time allows

Page 3: IceFire Presentation for Aos Canada tour

Tower of Babel: Quick Recap

• After the great flood destroyed everything, God put a rainbow in the cloud.

• It was the promise of a new relationship.• Cloud: scary→ reassuring.• Noah’s descendants wanted to build a tower that would

reach the cloud.

Page 4: IceFire Presentation for Aos Canada tour

Genesis 11A tower, whose top may reach unto heaven

• Because humans are one people with one language, anything that they want to do is possible.

• But God decided to go down there and confound their language, so they can’t collaborate.

• God scattered them by language upon the face of all the earth.

• The project to reach the cloud was abandoned.

Page 5: IceFire Presentation for Aos Canada tour
Page 6: IceFire Presentation for Aos Canada tour

2016/O365 and Languages

• Variations• Managed Metadata• MUI (Multilingual User Interface)• Machine Translation

Page 7: IceFire Presentation for Aos Canada tour

Change Default Language of an O365 Site Collection? • MSFT support:

• “If the requirement is strong for your organization, from our back end, we can help change it. However, we need to delete all site collections and re-create them, which also means all data will be deleted.”

• For My Site, this will also delete every user’s OneDrive for Business documents.

• Ouch! Easier to segregate users by language?• Your choice: great flood that destroys all, or scatter your users upon

the face of all the earth?• Or you can use PointFire

Page 8: IceFire Presentation for Aos Canada tour

USER LANGUAGE SETTINGSWhat Sets User MUI Language?

• 2007: Site’s base language only, no alternate languages

• 2010: Menu toggle sets cookie• 2013: Browser or user profile.• O365: It’s complicated

Page 9: IceFire Presentation for Aos Canada tour

7+ Language Settings

Base language Alt languages

Browserlanguagerankedlist

Profilelanguagelist

Base language Alt languages

O365 Account language

SP site settings

Browser settings

Add-in site settings

O365 Account

My ProfileO365 Profile

Which one?

First one on the list that matches base or alt language. Mapping: regional variants

Ignore browser if this list overlaps site languages

On change, changes profile setting

Make them match ↑

Page 10: IceFire Presentation for Aos Canada tour

Delay in Profile Change

Page 11: IceFire Presentation for Aos Canada tour

Changes Propagate at Different Rates

English → Spanish → German

Page 12: IceFire Presentation for Aos Canada tour

OneDrive UI Language Behaves LikeSharePoint

Page 13: IceFire Presentation for Aos Canada tour

The Instant Toggle Trick

1.Account setting that has no overlap with base + alt languages

2.Profile setting blank, or no overlap with base + alt languages

3.Go home, come back tomorrow4.Now change browser settings• Effect is instantaneous, but training needed

Page 14: IceFire Presentation for Aos Canada tour

PointFire On Premise

• For SharePoint 2007, 2010, 2013, 2016• Ensures that 2 different users going to the same URL will

each see it be entirely in their own language• Does not segregate users and content on separate sites• Solution includes feature, http module, web parts• Runs on the server, interacts with SharePoint and IIS• Modifies and filters text on the server• None of those techniques work in Office 365

Page 15: IceFire Presentation for Aos Canada tour

PointFire 365 v 1.1 functionality• SharePoint-hosted app

• None of your content goes to our server

• Configures SharePoint MUI & localization• Shows/hides web parts according to language• Filters content of lists, libraries, calendars according to language

• User can turn off filtering

• Filters other web parts including search• Redirects pages according to language• “Manage Variations” interface to set relationship between pages,

items

Page 16: IceFire Presentation for Aos Canada tour

DEMO

Page 17: IceFire Presentation for Aos Canada tour

PF 365 version 2 functionality

• Language toggle• Slow but steady

• Change date, number, currency formatting with language• Machine Translation of items & documents• Translate UI customizations using combination of user-

defined translations list and machine translation• Better support of Modern Libraries• More admin & provisioning features

Page 18: IceFire Presentation for Aos Canada tour

MACHINE TRANSLATION

French says: “Buff the sausage”

Page 19: IceFire Presentation for Aos Canada tour

SharePoint’s Machine Translation Service• SharePoint Service Application• Connects to Microsoft Translator

• Similar back end to Bing translation engine• Custom version for SharePoint users• Statistical engine, now with deep learning • On-premise – you can set it up to train with your own documents

• Used in Variations• Used in Managed Metadata• Available through API

Page 20: IceFire Presentation for Aos Canada tour

Machine Translation Has Some Risks

Page 21: IceFire Presentation for Aos Canada tour

Machine Translation Service is Sometimes Unavailable

Page 22: IceFire Presentation for Aos Canada tour

Check Translations with Context•¡Oye! ¿Cómo se escribe “papa” en Inglés?

• “Potato”.• Gracias.

Page 23: IceFire Presentation for Aos Canada tour

Machine Translation:Write for Translation• Microsoft Global English experiment• Microsoft Manual of Style• Global English Syntax

• Use short sentences• Avoid sentence fragments• Use optional pronouns – that, who• Use optional articles – the• Use optional punctuation• Keep adjectives & adverbs close,

watch “only”

• Machine Translation Syntax• But not too short• Present participle vs. gerunds• Past participles vs adjectives• Limit coordinate conjunctions

– and, or, but• Capitalize correctly

Page 24: IceFire Presentation for Aos Canada tour

Localizing Add-ins

• Localization vs. Globalization• Site Language vs. User Language

• At time of creating add-in site, template elements set according to site or user language

• Stays in that language even when user selects alternative language

• At run-time, change the display using JS file selected according to user UI language

Page 25: IceFire Presentation for Aos Canada tour

Globalize Add-ins

• SharePoint-hosted or injected branding JS files• Language-specific “Resources.nn-NN.js” file solutions

• Remote components: Request.QueryString["SPLanguage"]• Add-in domain has no easy access to user language in host domain

(JS XSS security)• However, if alternate languages match, then user language

matches• Note: add-in domain may not have same alternate languages

activated• {add-in web name} /_layouts/15/muisetng.aspx

Page 26: IceFire Presentation for Aos Canada tour

JS for Globalization Based on User Language

<script type="text/javascript" src="../scripts/Resources.<SharePoint:EncodedLiteral runat='server' text='<%$Resources:wss,language_value%>' EncodeMethod='HtmlEncode' />.js"></script>

• Load language-specific JS file Resources.nn-NN.js

• This JS file should contain localized string values

• Replace strings using JS<h2 id="heading">Bookshop</h2><script type="text/javascript"> window.onload = function () { document.getElementById("heading").innerText = localizedheading; } </script>

var localizedheading = "Librería";

Page 27: IceFire Presentation for Aos Canada tour

Localized PnP Provisioning<pnp:Provisioning xmlns:pnp="http://schemas.dev.office.com/PnP/2015/12/ProvisioningSchema">  <pnp:Preferences Generator="OfficeDevPnP.Core, Version=2.0.1601.0, Culture=neutral, PublicKeyToken=null" />  <pnp:Localizations>    <pnp:Localization LCID="1033" Name="English" ResourceFile="SiteTemplate-en.resx"/>    <pnp:Localization LCID="1043" Name="Dutch" ResourceFile="SiteTemplate-nl.resx"/>  </pnp:Localizations>

• PnP Localization using .resx & tokens, based on Site Language

<pnp:Templates ID="CONTAINER-TEMPLATE-8C075A44E60F4E82B8F013637DB1E654">  <pnp:ProvisioningTemplate ID="TEMPLATE-8C075A44E60F4E82B8F013637DB1E654" Version="1">    <pnp:Lists>      <pnp:ListInstance Title="{resource:myListTitle}" Description="{resource:myListDesc}" DocumentTemplate="" OnQuickLaunch="true" TemplateType="105" Url="Lists/my" MinorVersionLimit="0" MaxVersionLimit="0" DraftVersionVisibility="0" TemplateFeatureID="00bfea71-7e6d-4186-9ba8-c047ac750105" EnableFolderCreation="false">

• Token identifiers, all equivalent: {localization:<key>} , {localize:<key>} , {loc:<key>} , {resource:<key>},  {res:<key>}.

Page 28: IceFire Presentation for Aos Canada tour

More [email protected]

Thank You For Coming To aOS