diff --git a/Build/buildLocalLibraries.sh b/Build/buildLocalLibraries.sh index be836b7384..ee778df999 100755 --- a/Build/buildLocalLibraries.sh +++ b/Build/buildLocalLibraries.sh @@ -43,7 +43,7 @@ function delete_and_pack_liblcm { (cd "$liblcm_dir/artifacts" && rm *nupkg) echo "Running 'dotnet pack' in the liblcm directory: $liblcm_dir" - pack_output=$(cd "$liblcm_dir" && dotnet pack -c Debug) + pack_output=$(cd "$liblcm_dir" && dotnet pack -c Debug -p:TargetFrameworks=net461) # Extract version number using regex if [[ $pack_output =~ $version_regex ]]; then @@ -87,7 +87,7 @@ function delete_and_pack_chorus { (cd "$chorus_dir/output" && rm *nupkg) echo "Running 'dotnet pack' in the chorus directory: $chorus_dir" - pack_output=$(cd "$chorus_dir" && dotnet pack -c Debug) + pack_output=$(cd "$chorus_dir" && dotnet pack -c Debug -p:TargetFrameworks=net461) # Extract version number using regex if [[ $pack_output =~ $version_regex ]]; then @@ -130,7 +130,7 @@ function delete_and_pack_libpalaso { (cd "$libpalaso_dir/output" && rm *nupkg) echo "Running 'dotnet pack' in the libpalaso directory: $libpalaso_dir" - pack_output=$(cd "$libpalaso_dir" && dotnet pack -c Debug) + pack_output=$(cd "$libpalaso_dir" && dotnet pack -c Debug -p:TargetFrameworks=net461) # Extract version number using regex if [[ $pack_output =~ $version_regex ]]; then diff --git a/Src/xWorks/WordStylesGenerator.cs b/Src/xWorks/WordStylesGenerator.cs index c5d1419c01..d48bba8f7c 100644 --- a/Src/xWorks/WordStylesGenerator.cs +++ b/Src/xWorks/WordStylesGenerator.cs @@ -264,6 +264,7 @@ internal static Style GenerateWordStyleFromLcmStyleSheet( if (exportStyleInfo.HasTrailingIndent) { + // Check bidirectional flag to determine correct orientation for indent if (exportStyleInfo.DirectionIsRightToLeft == TriStateBool.triTrue) parProps.Append(new Indentation() { Left = MilliPtToTwentiPt(exportStyleInfo.TrailingIndent).ToString() }); else @@ -279,6 +280,7 @@ internal static Style GenerateWordStyleFromLcmStyleSheet( ancestorIndents = CalculateParagraphIndentsFromAncestors(ancestorIndents.Ancestor, styleSheet, new AncestorIndents(0f, 0f)); var leadingIndent = CalculateMarginLeft(exportStyleInfo, ancestorIndents, hangingIndent); + // Check bidirectional flag to determine correct orientation for indent if (exportStyleInfo.DirectionIsRightToLeft == TriStateBool.triTrue) parProps.Append(new Indentation() { Right = leadingIndent.ToString() }); else @@ -286,16 +288,10 @@ internal static Style GenerateWordStyleFromLcmStyleSheet( } } - // If text direction is specified, add specification to paragraph properties - if (exportStyleInfo.DirectionIsRightToLeft != TriStateBool.triNotSet) + // If text direction is right to left, add BiDi property to the paragraph. + if (exportStyleInfo.DirectionIsRightToLeft == TriStateBool.triTrue) { parProps.Append(new BiDi()); - - if (exportStyleInfo.DirectionIsRightToLeft == TriStateBool.triTrue) - parProps.Append(new TextDirection() { Val = TextDirectionValues.TopToBottomRightToLeft }); - - else - parProps.Append(new TextDirection() { Val = TextDirectionValues.LefToRightTopToBottom }); } exportStyle.Append(parProps); } @@ -441,12 +437,18 @@ private static Style GenerateWordStyleFromWsOptions(ConfigurableDictionaryNode c // if the writing system isn't a magic name just use it otherwise find the right one from the magic list var wsIdString = possiblyMagic == 0 ? ws.Id : WritingSystemServices.GetWritingSystemList(cache, possiblyMagic, true).First().Id; var wsId = cache.LanguageWritingSystemFactoryAccessor.GetWsFromStr(wsIdString); + var wsString = String.Format("[lang=\'{0}\']", wsIdString).Trim('.'); var wsStyle = new Style(); + if (!string.IsNullOrEmpty(configNode.Style)) wsStyle = GenerateWordStyleFromLcmStyleSheet(configNode.Style, wsId, propertyTable); - wsStyle.StyleId = configNode.Style + (String.Format("[lang=\'{0}\']", wsIdString)).Trim('.'); + //style should be based on the span for the current ws as well as the style info for the current node that is independent from the ws + wsStyle.Append(new BasedOn() { Val = "span" + wsString }); + wsStyle.Append(new BasedOn() { Val = configNode.Style }); + + wsStyle.StyleId = configNode.Style + wsString; if (!IsEmptyStyle(wsStyle)) return wsStyle;